Entity Framework - شرح ما هي Migration
Entity Framework Core - شرح ما هي Migration؟
🧠 ما هو مفهوم Migration؟
Migration في Entity Framework Core تعني عملية تتبع التغييرات التي تحدث في نموذج البيانات (Models) وتحويلها إلى تغييرات في قاعدة البيانات (Database) بشكل تلقائي أو شبه تلقائي.
بمعنى آخر، بدلاً من تعديل الجداول يدويًا داخل SQL Server مثلاً، يمكنك عبر Migration أن تجعل EF Core:
- يرصد التغييرات في الكلاسات والخصائص.
- يولد لك أوامر SQL المناسبة.
- يطبقها على قاعدة البيانات بنقرة زر.
🎯 لماذا نستخدم Migration؟
- لإنشاء قاعدة بيانات جديدة بسهولة.
- لتحديث الجداول تلقائيًا عند تعديل الكود.
- لإدارة تطور قاعدة البيانات عبر الزمن بشكل منظم.
- لتسهيل العمل ضمن فريق بدون صراعات يدوية على السكربتات.
- لضمان أن الكود ونسخة قاعدة البيانات متطابقان دائمًا.
🔗 كيف يعمل EF Core Migration باختصار؟
العملية تتم كالتالي:
- تقوم بتعديل أو إنشاء Model جديد في الكود.
- تنشئ Migration جديدة باستخدام أمر
Add-Migration
. - تقوم بتحديث قاعدة البيانات بأمر
Update-Database
. - EF Core يقوم بتوليد SQL Scripts اللازمة وينفذها.
🛠️ مثال عملي بسيط لفهم Migration
افترض أن لديك الكلاس التالي:
public class Product
{
public int ProductId { get; set; }
public string ProductName { get; set; }
}
وعندما تنشئ Migration، يقوم EF Core بتوليد سكربت SQL خلف الكواليس مثل:
CREATE TABLE Products (
ProductId INT PRIMARY KEY IDENTITY,
ProductName NVARCHAR(MAX)
);
✅ كل هذا يتم تلقائيًا بدون أن تكتب SQL بنفسك!
⚡ ملاحظات سريعة
- Migration مجرد سجل بالتغييرات، ليس قاعدة البيانات نفسها.
- ممكن إنشاء أكثر من Migration حسب التعديلات الجديدة.
- يمكن الرجوع إلى أي نسخة سابقة من قاعدة البيانات باستخدام Migrations.
- Migration تعتبر أداة قوية جدًا لتنظيم التطوير خاصة في المشاريع الكبيرة.
🧪 تجربة عملية سريعة
لو أضفت خاصية جديدة لكلاس Product:
public string Description { get; set; }
ثم أنشأت Migration جديدة ➔ يقوم EF Core تلقائيًا بإنشاء سكربت SQL مثل:
ALTER TABLE Products
ADD Description NVARCHAR(MAX);
وهكذا تتم إدارة التغييرات بأمان وسهولة.
تعليقات
إرسال تعليق