Entity Framework - كيف تدير إصدارات قاعدة البيانات بين بيئات التطوير والإنتاج.
Entity Framework Core - كيف تدير إصدارات قاعدة البيانات بين بيئات التطوير والإنتاج
🧠 لماذا نحتاج لإدارة إصدارات قاعدة البيانات؟
في المشاريع الحقيقية عادةً يكون لديك أكثر من بيئة:
- بيئة التطوير (Development Environment)
- بيئة الاختبار (Staging Environment)
- بيئة الإنتاج (Production Environment)
🔗 كيف يتم إدارة الإصدارات بشكل صحيح؟
- إنشاء Migrations محكمة: كل تغيير في الـ Models يجب أن يقابله Migration جديدة باسم واضح ومعبر.
- تخزين Migrations مع الكود البرمجي: يجب حفظ ملفات Migrations ضمن النظام الخاص بإدارة الإصدارات مثل Git.
- تطبيق Migrations بنفس الترتيب: كل بيئة تطبق Migrations بالتسلسل الصحيح لضمان تطابق الهياكل.
- مراجعة السكربتات قبل تطبيقها على الإنتاج: لتفادي أخطاء كارثية مثل حذف أعمدة أو بيانات مهمة.
🛠️ خطوات إدارة Migrations بين البيئات
1. أثناء التطوير
- أنشئ Migration مع كل تعديل مهم. - تأكد أن Migration تعمل بشكل صحيح على قاعدة بيانات التطوير. - قم بعمل Commit للكود + ملف Migration إلى Git أو أي نظام تحكم بالإصدارات.
2. أثناء النشر إلى الاختبار (Staging)
- اسحب (Pull) الكود بما فيه ملفات الـ Migrations. - نفذ الأمر:
Update-Database
- تأكد أن قاعدة بيانات الاختبار أصبحت مطابقة لقاعدة بيانات التطوير.
3. أثناء النشر إلى الإنتاج (Production)
- لا تستخدم Update-Database مباشرة (خطر جدًا!).
- بدلاً من ذلك، قم بتوليد سكربت SQL باستخدام:
Script-Migration
🔹 هذا الأمر ينشئ لك ملف SQL بكل التغييرات المطلوبة. 🔹 يمكنك مراجعة السكربت، ثم تطبيقه يدويًا على قاعدة البيانات الإنتاجية مع فريق DBA أو فريق DevOps.
👨💻 مثال عملي لتوليد سكربت SQL من Migration
Script-Migration -From InitialCreate -To AddProductsTable
✅ هذا الأمر ينشئ سكربت SQL بالتغييرات بين Migration InitialCreate وAddProductsTable.
⚡ نصائح إضافية مهمة
- استخدم الأمر
Script-Migration
دائمًا في بيئات الإنتاج بدلاً من Update-Database المباشر. - تحقق من ترتيب تنفيذ السكربتات إذا كان لديك أكثر من سكربت.
- سجّل رقم كل Migration مطبقة داخل مستندات المشروع لضمان متابعة الإصدارات بدقة.
تعليقات
إرسال تعليق