Entity Framework - كيفية التراجع لنسخة سابقة من قاعدة البيانات.

Entity Framework Core - كيفية التراجع لنسخة سابقة من قاعدة البيانات


🧠 ما معنى التراجع إلى نسخة سابقة؟

التراجع يعني أنك تريد أن تعيد قاعدة البيانات إلى حالة معينة كانت عليها أثناء تنفيذ Migration سابقة، وكأنك تلغي التغييرات التي حدثت بعدها.

مثلاً: لو لديك 5 Migrations منفذة، وأردت الرجوع إلى الثانية فقط ➔ يجب أن تقوم بعملية Downgrade للقاعدة إلى تلك النقطة.


🛠️ كيف يتم التراجع إلى نسخة سابقة؟

تستخدم الأمر التالي مع تحديد اسم الـ Migration التي تريد الرجوع إليها:


Update-Database -Migration MigrationName

أو عبر CLI:


dotnet ef database update MigrationName

✅ يقوم EF Core تلقائيًا بإنشاء أوامر SQL (مثل DROP TABLE أو ALTER TABLE) لعكس التغييرات التي حدثت بعد تلك Migration.


👨‍💻 مثال عملي على التراجع

افترض أن لديك Migrations بالترتيب التالي:

  • InitialCreate
  • AddCategoriesTable
  • AddProductsTable
  • AddOrdersTable

وتريد أن تعود إلى AddCategoriesTable فقط، تنفذ الأمر:


Update-Database -Migration AddCategoriesTable

🔹 النتيجة:

  • يتم حذف التغييرات الناتجة عن AddProductsTable وAddOrdersTable.
  • تصبح قاعدة البيانات وكأنها توقفت عند AddCategoriesTable.


🔍 كيف تعرف أسماء Migrations المتاحة؟

يمكنك تنفيذ الأمر التالي لرؤية قائمة بكل الـ Migrations:


Get-Migration

أو عبر CLI:


dotnet ef migrations list

⚡ ملاحظات إضافية مهمة

  • التراجع يغير فقط قاعدة البيانات، ولا يحذف ملفات الـ Migration من المشروع.
  • ممكن أن يؤدي التراجع إلى فقدان بيانات حقيقية (مثل حذف جداول أو أعمدة)، فكن حذرًا خاصة في بيئات الإنتاج.
  • دائمًا احتفظ بنسخة احتياطية (Backup) قبل تنفيذ أي عمليات تراجع مهمة.

🧪 تجربة عملية سريعة

- أنشئ 3 Migrations بسيطة.
- نفذها باستخدام Update-Database.
- ثم جرب الرجوع إلى أول Migration ومراقبة التغييرات في الجداول داخل SQL Server أو أي أداة قاعدة بيانات تستخدمها.

تعليقات

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

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

1.1 SQL Introduction

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