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 أو أي أداة قاعدة بيانات تستخدمها.
تعليقات
إرسال تعليق