تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.
أثناء تطوير وتحديث إضافات NocoBase، قد تحدث تغييرات غير متوافقة في بنية قاعدة بيانات الإضافة أو إعداداتها. لضمان تنفيذ ترقيات سلسة، توفر NocoBase آلية Migration، والتي تتعامل مع هذه التغييرات عن طريق كتابة ملفات Migration. سيرشدك هذا الدليل إلى فهم منهجي لكيفية استخدام Migration وسير عمل التطوير.
Migration هو نص برمجي يتم تنفيذه تلقائيًا أثناء ترقية الإضافات، ويُستخدم لحل المشكلات التالية:
ينقسم توقيت تنفيذ Migration إلى ثلاثة أنواع:
| النوع | توقيت التشغيل | سيناريو التنفيذ |
|---|---|---|
beforeLoad | قبل تحميل جميع إعدادات الإضافات | |
afterSync | بعد مزامنة إعدادات المجموعة مع قاعدة البيانات (بعد أن تكون بنية المجموعة قد تغيرت بالفعل) | |
afterLoad | بعد تحميل جميع إعدادات الإضافات |
يجب وضع ملفات Migration في المسار src/server/migrations/*.ts ضمن دليل الإضافة. توفر NocoBase الأمر create-migration لإنشاء ملفات Migration بسرعة.
المعلمات الاختيارية
| المعلمة | الوصف |
|---|---|
--pkg <pkg> | تحديد اسم حزمة الإضافة |
--on [on] | تحديد توقيت التنفيذ، الخيارات المتاحة: beforeLoad، afterSync، afterLoad |
مثال
مسار ملف Migration الذي تم إنشاؤه هو كما يلي:
المحتوى الأولي للملف:
⚠️ يُستخدم
appVersionلتحديد الإصدار المستهدف للترقية. سيتم تنفيذ هذا الـ Migration في البيئات التي يكون إصدارها أقل من الإصدار المحدد.
في ملفات Migration، يمكنك الوصول إلى الخصائص وواجهات برمجة التطبيقات الشائعة التالية عبر this لتسهيل التعامل مع قاعدة البيانات والإضافات ومثيلات التطبيق:
الخصائص الشائعة
this.app
مثيل تطبيق NocoBase الحالي. يمكن استخدامه للوصول إلى الخدمات العامة أو الإضافات أو الإعدادات.
this.db
مثيل خدمة قاعدة البيانات، يوفر واجهات للتعامل مع النماذج (المجموعات).
this.plugin
مثيل الإضافة الحالي، يمكن استخدامه للوصول إلى الطرق المخصصة للإضافة.
this.sequelize
مثيل Sequelize، يمكنه تنفيذ استعلامات SQL الأصلية أو عمليات المعاملات مباشرة.
this.queryInterface
واجهة QueryInterface الخاصة بـ Sequelize، تُستخدم عادةً لتعديل هياكل الجداول، مثل إضافة حقول جديدة أو حذف جداول.
مثال على كتابة Migration
بالإضافة إلى الخصائص الشائعة المذكورة أعلاه، يوفر Migration أيضًا واجهات برمجة تطبيقات غنية. للحصول على وثائق مفصلة، يرجى الرجوع إلى Migration API.
يتم تشغيل تنفيذ Migration بواسطة الأمر nocobase upgrade:
أثناء الترقية، يحدد النظام ترتيب التنفيذ بناءً على نوع Migration وappVersion.
في تطوير الإضافات، يُنصح باستخدام Mock Server لاختبار ما إذا كان Migration يعمل بشكل صحيح، لتجنب إتلاف البيانات الحقيقية.
نصيحة: يمكن استخدام Mock Server لمحاكاة سيناريوهات الترقية بسرعة، والتحقق من ترتيب تنفيذ Migration وتغييرات البيانات.
beforeLoad أو afterSync أو afterLoad بناءً على الكائنات التي يتم التعامل معها، لتجنب الاعتماد على الوحدات غير المحملة.appVersion لتحديد الإصدار الذي ينطبق عليه Migration بوضوح، لمنع التنفيذ المتكرر.