EF Migrations - قاعدة بيانات موجودة ولكن تريد النشر من البداية
-
11-12-2019 - |
سؤال
لدي قاعدة بيانات مطورة موجودة مع المخطط والبيانات.لقد قمت بإنشاء الفئات باستخدام الأداة المساعدة Microsoft (فئات CodeFirst).ثم قمت بتمكين عمليات الترحيل.
الآن أنا في حيرة بشأن سلوك -IgnoreChanges.إذا لم يكن للترحيل الأولي أي منطق Up() ولا Down()، فماذا سيحدث عندما أقوم بالنشر إلى قاعدة بيانات prod؟
هل تتجاهل EF ببساطة جميع عمليات الترحيل وتبني من الصفر مباشرة من النموذج؟
إذا لم أضع -IgnoreChanges، فكل منطق Up() و Down() موجود.ولكن عند تحديث قاعدة البيانات، فإنه يطرح استثناءً حول جدول موجود بالفعل بنفس الاسم.
أنا أستخدم EF 5 RC.
المحلول
IgnoreChanges
مخصص للسيناريوهات التي يكون لديك فيها تطبيق موجود (في كل من dev وprod) وتريد البدء في استخدام عمليات الترحيل. IgnoreChanges
سوف تبسيط إضافة الهجرة الأولية إلى قاعدة البيانات الموجودة.إذا كنت في سيناريو لا توجد فيه قاعدة بيانات إنتاج، فلا يمكنك استخدام تجاهل التغييرات.
الخيار المباشر لحالتك هو إنشاء كيانات من قاعدة البيانات الموجودة ومواصلة العمل على قاعدة بيانات أخرى تم إنشاؤها عن طريق الترحيل من تلك الكيانات لأنك تحتاج إلى إنشاء جدول لجميع تلك الكيانات في Up
طريقة (و Down
الطريقة على التوالي).