Entity Framework - متى تستخدم Migrations تلقائيًا؟ ومتى تكتب SQL Scripts يدوياً؟

Entity Framework Core - متى تستخدم Migrations تلقائيًا؟ ومتى تكتب SQL Scripts يدويًا؟


🧠 مقدمة

في العمل مع Entity Framework Core، أمامك خياران لتحديث قاعدة البيانات:

  • استخدام Migrations التلقائية عبر أوامر مثل Update-Database.
  • أو توليد سكربتات SQL يدويًا وتنفيذها بنفسك.
كل خيار له وقت مناسب لاستخدامه بناءً على طبيعة المشروع والبيئة التي تعمل عليها.


🛠️ متى تستخدم Migrations التلقائية؟

تستخدم Migrations التلقائية (Update-Database) عندما:

  • تعمل في بيئة تطوير (Development Environment).
  • تجري تعديلات متكررة على الكود والبيانات بشكل يومي.
  • المشروع صغير أو متوسط الحجم ولا يحتوي على بيانات إنتاج حساسة.
  • أنت تتحكم بشكل كامل في قاعدة البيانات ولا يوجد قيود من فريق DBA.

✅ في بيئة التطوير، السرعة والمرونة أهم من الحذر، لذلك Migrations التلقائية مريحة جدًا.


🛠️ متى تكتب SQL Scripts يدويًا؟

تستخدم SQL Scripts اليدوية عندما:

  • تعمل في بيئة إنتاج (Production Environment) أو اختبار رسمي (Staging).
  • البيانات الموجودة حيوية وحساسة ولا تحتمل فقدان أو تلف.
  • هناك عمليات مراجعة رسمية للتغييرات قبل تطبيقها (مثل مراجعة DevOps أو DBA).
  • تحتاج إلى تسجيل وتحليل التغييرات يدويًا قبل تنفيذها.

✅ كتابة السكربتات يدويًا (أو توليدها عبر Script-Migration) يمنحك فرصة لمراجعة ما سيتم تطبيقه بالضبط خطوة بخطوة.


🔍 مقارنة سريعة بين الطريقتين

البند Migrations التلقائية SQL Scripts اليدوية
السرعة أسرع وأسهل أبطأ بسبب المراجعة اليدوية
مستوى الأمان أقل أمانًا أعلى أمانًا وتحكمًا
مناسب لـ تطوير واختبار داخلي إنتاج واختبار رسمي
سهولة التراجع أصعب قليلًا أسهل عبر إدارة السكربتات

👨‍💻 خطوات توليد سكربت SQL يدوي

لتوليد سكربت SQL من Migration:


Script-Migration -From InitialCreate -To AddProductsTable

✅ يتم إنشاء ملف SQL يمكنك مراجعته وتنفيذه بنفسك على القاعدة الإنتاجية.


⚡ نصائح إضافية مهمة

  • في بيئة التطوير ➔ استعمل Update-Database للتجربة السريعة.
  • في بيئة الإنتاج ➔ دائمًا استخدم سكربت SQL مُراجع يدويًا.
  • قبل تنفيذ أي سكربت على Production ➔ تأكد من عمل نسخة احتياطية كاملة.

تعليقات

المشاركات الشائعة من هذه المدونة

HTML - Text Formatting تنسيقات النص

1.1 SQL Introduction

Entity Framework - مقدمة عن Entity Framework