بدلاً من تحديث قاعدة البيانات تلقائيًا، قم بإنشاء برنامج نصي SQL باستخدام n-hibernate بطلاقة لبيئة الإنتاج

StackOverflow https://stackoverflow.com//questions/22078299

سؤال

لقد ألقيت نظرة سريعة على الوثائق المختلفة، على الرغم من أنني لم أجد أي شيء يعالج هذا الأمر.أنا أتطلع إلى استخدام Fluentmigrator للمشاريع المستقبلية، على الرغم من أن ممارسات التدريج/الإنتاج يجب أن تقوم بتحديثات المخطط من خلال dba.مسموح لي أن أفعل ما أريد في البيئات الأخرى مثل الاختبار والتطوير والبيئات المحلية.

يتم هزيمة الغرض من الأداة تمامًا إذا اضطررت إلى كتابة البرامج النصية لإجراء التغييرات على أي حال.ومع ذلك، خطر في بالي، ماذا لو لم أفعل؟لذا سؤالي هو هذا:هل من الممكن أن يتم ترحيل برنامج نصي SQL إلى ملف بطلاقة، بدلاً من تشغيل المعاملة فعليًا؟

في تجربتي، قمت بإنشاء تطبيق وحدة تحكم يستخدم نفس تجميع DAL مثل المشروع الرئيسي، ويستفيد من منطق الترحيل، بحيث أنه كلما قمت بتشغيل تطبيق وحدة التحكم، فإنه يقوم بتحديث قاعدة البيانات من البداية، أو من أقرب نقطة حسب اختياري .نحن نستخدم TeamCity، لذلك اعتقدنا أنه قد يكون من الرائع تشغيل التطبيق ووضع البرنامج النصي (كقطعة أثرية) في مجلد كخطوة في عملية إنشاء مسؤول قواعد البيانات لدينا في البيئات التي ستحدث المخطط بنفسي.

هل كانت مفيدة؟

المحلول

ال مشغل سطر الأوامر FluentMigrator سيقوم بإنشاء نصوص SQL، دون تطبيق التغييرات على قاعدة البيانات، إذا كنت تستخدم:

  • --preview=true
  • --output=true
  • --outputFilename=output1.sql

وإذا قمت بتثبيت حزمة FluentMigrator.Tools بالإضافة الى حزمة FluentMigrator, ، سيكون لديك حق الوصول إلى مشغل سطر الأوامر من دليل إخراج بناء مشروع الترحيل (Migrate.exe).

ملحوظة:سوف تحتوي البرامج النصية التي تم إنشاؤها على إدراجات في جدول إصدار FluentMigrator.

نصائح أخرى

After reading Command Line Runner Options I'd use --verbose=true to output the sql script and --output to save it to a file. There seems to be no 'dry run' option however - you'll need to run the migration in some preproduction environment to obtain the script.

Give it a shot as I've admittedly never tried it.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top