- أدخل أوامر SQL DDL: الصق أوامر
CREATE TABLEالخاصة بقاعدة بياناتك (PostgreSQL أو MySQL أو SQLite) في المحرر. - اختر لهجة SQL وإطار العمل المستهدف: حدد نوع قاعدة البيانات ونظام الـ ORM المطلوب (Drizzle PG أو Drizzle MySQL أو Prisma أو Kysely أو Zod).
- اضبط خيارات التوليد: فعّل استخراج العلاقات التلقائي (Relations)، واشتقاق أنواع TypeScript (
$inferSelect)، وتحويل أسماء الحقول إلى CamelCase. - عاين النتائج والإحصائيات: تحقق من عدد الجداول المحللة والأعمدة والعلاقات المستخرجة من شريط الإحصائيات.
- انسخ أو حمّل الكود: انسخ كود TypeScript أو Prisma بنقرة واحدة أو قم بتحميله كملف
.tsأو.prisma.
ما هو محول مخططات SQL إلى Drizzle و Prisma و Kysely؟
يعد محول مخططات SQL إلى Drizzle و Prisma أداة برمجية متقدمة وفائقة الخصوصية لمطوري الويب وهندسة قواعد البيانات في بيئة TypeScript. صُممت هذه المنصة لتحويل أوامر إنشاء الجداول القياسية (SQL DDL CREATE TABLE) الخاصة بقواعد بيانات PostgreSQL و MySQL و SQLite إلى مخططات برمجية كاملة، منسقة ومحقونة بالأنواع البرمجية الدقيقة لأنظمة Drizzle ORM و Prisma (schema.prisma) وواجهات Kysely ومخططات التحقق Zod—كل ذلك مباشرة داخل متصفحك دون مغادرة جهازك أو رفع أي بيانات لأي خادم خارجي.
شهد مجتمع مطوري TypeScript تحولاً جذرياً نحو أطر العمل الحديثة مثل Drizzle ORM التي توفر أماناً نوعياً مطلقاً (Type-Safety) دون المساس بالأداء أو إضافة طبقات برمجية ثقيلة تزيد من زمن الإقلاع البارد (Cold Start) في الخوادم اللامركزية. ومع ذلك، فإن إعادة كتابة قواعد البيانات القديمة يدوياً إلى شفرات TypeScript تمثل عملية شاقة ومعرضة للأخطاء البشرية؛ حيث يتعين على المطور تحويل أنواع البيانات، وضبط المفاتيح الأساسية والتسلسل التلقائي، وصياغة العلاقات والمفاتيح الأجنبية، ومطابقة التسميات المتوافقة مع CamelCase. يقضي هذا الاستوديو على هذه الصعوبات عبر توفير بيئة تحويل بصرية لحظية فائقة السرعة ومتوافقة مع مختلف قواعد البيانات العالمية.
كيف يعمل محرك التحليل النحوي وتوليد الأكواد محلياً داخل المتصفح؟
يعمل المحول بنسبة 100% على جانب العميل (Client-Side) عبر أربع مراحل معالجة متقدمة:
- التحليل المعجمي وتطهير النصوص (Lexical Analysis): يتم تنقية كود SQL من التعليقات البرمجية والمسافات الزائدة، وتحليل جمل
CREATE TABLEبدقة، مع مراعاة الفروق الدقيقة بين لهجات قواعد البيانات المختلفة (مثل الفواصل العليا العكسية في MySQL أو علامات التنصيص في PostgreSQL). - استخراج شجرة البنية المجردة (AST Extraction): يستخرج المحرك أسماء الجداول والأعمدة، ويحلل أنواع البيانات وأطوالها (مثل
VARCHAR(255))، وقيود القيم الإلزامية (NOT NULL)، والقيم الافتراضية (مثلCURRENT_TIMESTAMPأوtrue)، والمفاتيح الأساسية ومولدات التسلسل (SERIALأوAUTO_INCREMENT). - اكتشاف وتحليل العلاقات والمفاتيح الأجنبية: يحلل المحرك قيود
FOREIGN KEYوREFERENCES، ويحدد الجداول المرتبطة والأعمدة المرجعية وإجراءات الحذف التلقائي المتتالي (ON DELETE CASCADE). - توليد الأكواد متعددة الأنماط: يتم تحويل الشجرة المستخرجة إلى كود TypeScript جاهز للنسخ في مشروعك مباشرة بصيغة Drizzle (PostgreSQL أو MySQL أو SQLite) أو ملفات
schema.prismaأو واجهات Kysely أو مخططات Zod.
دليل عملي خطوة بخطوة لترحيل المخططات
خطوات عملية لتصدير مخطط قاعدة بياناتك وتحويله ودمجه في مشاريع TypeScript:
- تصدير مخطط قاعدة البيانات: استخرج أوامر DDL النقية دون تصدير البيانات المخزنة:
# PostgreSQL: تصدير الهيكل بدون بيانات pg_dump --schema-only --no-owner -U postgres mydb > schema.sql # MySQL: تصدير بنية الجداول mysqldump --no-data -u root -p mydb > schema.sql # SQLite: استخراج مخطط الجداول sqlite3 mydb.db ".schema" > schema.sql - الصق الكود في المحرر: الصق أوامر
CREATE TABLEفي نافذة الإدخال اليسرى. - حدد لهجة المصدر وإطار العمل المستهدف: اختر بين PostgreSQL أو MySQL أو SQLite، ثم حدد Drizzle ORM أو Prisma أو Kysely أو Zod.
- ضبط خيارات التوليد: فعّل خيارات العلاقات وأنواع TypeScript والتحويل إلى CamelCase حسب تفضيلات فريقك.
- نسخ أو تحميل الكود: انقر على زر النسخ لاستخدام المخطط مباشرة في ملف
src/db/schema.ts.
مقارنة بين محول المتصفح وأدوات الترحيل التقليدية عبر سطر الأوامر
| معيار التقييم | محول SQL Studio (Serverless Tools) | أداة drizzle-kit introspect | أداة prisma db pull | المواقع السحابية التقليدية |
|---|---|---|---|---|
| الخصوصية المحلية (بدون رفع ملفات) | 100% داخل المتصفح (آمن ومعزول تماماً) | محلي عبر سطر الأوامر | محلي عبر سطر الأوامر | يتم رفع المخطط لخوادمهم |
| الحاجة لاتصال حي بقاعدة البيانات | لا يتطلب اتصال (يعمل محلياً من ملفات ونصوص SQL) | يتطلب رابط اتصال حي بقاعدة البيانات | يتطلب رابط اتصال حي بقاعدة البيانات | لا يتطلب |
| تعدد أنظمة الـ ORM المدعومة | Drizzle (PG/MySQL/SQLite) و Prisma و Kysely و Zod | Drizzle فقط | Prisma فقط | أدوات فردية ومحدودة |
| توليد العلاقات والأنواع المشتقة | مدمج بنقرة واحدة ($inferSelect / $inferInsert) | يتطلب خطوات يدوية إضافية | صيغة Prisma فقط | غير متوفر |
| توليد مخططات التحقق Zod Schemas | متوفر لحظياً لكافة الجداول | يتطلب حزمة خارجية منفصلة | يتطلب مولدات طرف ثالث | غير مدعوم |
المواصفات التقنية وتوافق المحركات وقواعد البيانات
| المجال التقني | التفاصيل والمواصفات المدعومة | الميزات المتقدمة |
|---|---|---|
| لهجات SQL المصدرية | PostgreSQL و MySQL و MariaDB و SQLite | دعم علامات التنصيص والفواصل العكسية وبادئات المخططات |
| مخرجات TypeScript ORM | Drizzle ORM (pgTable و mysqlTable و sqliteTable) | توليد كتل العلاقات وفهارس البحث والأنواع المشتقة |
| الصيغ والمخرجات البديلة | Prisma Schema (schema.prisma) و Kysely و Zod | كائنات التحقق الفوري والأنواع الاختيارية (Optional) |
| الأنواع المعقدة والـ JSON | JSONB و JSON و UUID و TIMESTAMP WITH TIME ZONE و ARRAY | استيراد الحزم الدقيقة والتحويل الزمني التلقائي |
| أمان وخصوصية المعالجة | 100% على جانب العميل بدون اتصال بالسيرفر | متوافق مع المعايير المؤسسية الصارمة و GDPR |
أبرز الميزات والقدرات الهندسية المتقدمة
يوفر المحول إمكانيات برمجية شاملة لتلبية متطلبات كبار مهندسي البيانات:
- تحليل متطور لمختلف اللهجات: يتعامل مع الجداول المعقدة بما في ذلك الفهارس متعددة الأعمدة والمفاتيح الأساسية المركبة.
- استخراج العلاقات التلقائي: يولد دوال
relations()في Drizzle مع دعم علاقاتone()وmany()للاستعلامات المدمجة. - اشتقاق أنواع TypeScript: يصدر تلقائياً أنواع
$inferSelectو$inferInsertلضمان أمان البيانات بين الواجهة والخلفية. - تحويل الأسماء إلى CamelCase: يحول أسماء الأعمدة التقليدية مثل
created_atإلىcreatedAtفي الواجهة البرمجية مع الحفاظ على اسم العمود الأصلي في قاعدة البيانات.
سيناريوهات الاستخدام العملي وحالات الترحيل
يستفيد المطورون والمؤسسات من هذه الأداة في العديد من المهام الحيوية:
- تحديث الأنظمة القديمة: تحويل قواعد بيانات المشاريع القديمة المبنية على PostgreSQL أو MySQL إلى تطبيقات حديثة تستخدم Drizzle ORM دون الحاجة لفتح منافذ قواعد البيانات للإنترنت.
- بناء تطبيقات الحوسبة السحابية اللامركزية: إنشاء مخططات خفيفة متوافقة مع Cloudflare Workers و Vercel و Supabase حيث تؤثر أحجام الحزم على سرعة الأداء.
- بناء النماذج الأولية السريعة: تصميم قواعد البيانات عبر أدوات الرسم المرئية وتصديرها كشفرات TypeScript ومخططات Zod في ثوانٍ.
استكشاف الأخطاء الشائعة وحلول مشاكل الترحيل
إرشادات لتفادي الصعوبات الشائعة عند تحويل شفرات SQL إلى أطر عمل TypeScript:
- الأنواع المخصصة غير المعرفة: تأكد من تعريف أنواع ENUM قبل استدعائها في الجداول لضمان تحويلها بدقة.
- المفاتيح الأجنبية الدائرية: يستخدم المحول أسلوب الدوال المغلفة (Thunk Functions مثل
() => users.id) تلقائياً لتفادي أخطاء الاستيراد الدائري في Node.js. - الأعمدة الافتراضية المعقدة: الاستدعاءات الخاصة مثل الدوال المخصصة تُحول تلقائياً إلى
sql``لضمان التوافق التام أثناء وقت التشغيل.
نصائح الخبراء لأفضل ممارسات مخططات TypeScript
توصيات هندسية لرفع كفاءة وصيانة قواعد البيانات في مشاريعك:
- استخدم التوقيت مع المنطقة الزمنية دائماً: استخدم
withTimezone: trueفي أعمدة الوقت لتجنب أخطاء فارق التوقيت UTC بين الخوادم والمستخدمين. - تقسيم المخططات الكبيرة: في قواعد البيانات الضخمة التي تحتوي على عشرات الجداول، وزع مخرجات الأداة على ملفات مستقلة مجمعة في ملف
index.tsمركزي. - الاستفادة من Zod في خوادم API: استخدم مخططات Zod المولدة تلقائياً للتحقق من صحة المدخلات في Next.js Server Actions قبل إرسال الاستعلامات لقاعدة البيانات.
الخصوصية التامة: حماية أسرار وهيكلية بياناتك
تمثل مخططات قواعد البيانات جوهر الملكية الفكرية لتطبيقاتك، حيث تكشف عن نماذج العمل، والعلاقات الحساسة، وطرق تخزين البيانات. يضمن استوديو التحويل في Serverless Tools أماناً تاماً؛ حيث تنفذ كافة عمليات الفحص والتوليد داخل متصفحك بنسبة 100% دون أي اتصال خارجي، مما يجعله متوافقاً كلياً مع متطلبات الشركات والسياسات الأمنية المعزولة (Air-Gapped).
الأدوات المكملة في منصة Serverless Tools
لتعزيز كفاءتك في بناء التطبيقات وإدارة قواعد البيانات، نوصي بربط هذه الأداة بمجموعة أدواتنا المكملة:
- محول cURL إلى لغات البرمجة: لتحويل استدعاءات واجهات برمجة التطبيقات وقواعد البيانات إلى أكواد بايثون و Go و Node.js.
- محول ملفات HAR إلى Postman و OpenAPI: لفحص طلبات واستجابات الشبكة وتطهير توكنات المصادقة الحساسة.
- مولد خدمات ومؤقتات Systemd لينكس: لتشغيل وإدارة خدمات قواعد البيانات ومهام الترحيل التلقائية كخدمات خلفية مستقرة على خوادم لينكس.
- حاسبة توكنات وتكاليف نماذج الذكاء الاصطناعي: لحساب تكاليف واستهلاك التوكنات لاستعلامات قواعد البيانات المولدة بنماذج الذكاء الاصطناعي.