سؤال

أستخدم كلاً من روبي على القضبان وجافا.أنا أستمتع حقًا باستخدام عمليات الترحيل عندما أعمل في مشروع Rails.لذلك أتساءل هل هناك أداة هجرات مثل Java؟إذا لم تكن هناك مثل هذه الأداة، فهل من الجيد استخدام عمليات الترحيل كأداة للتحكم في قاعدة البيانات التي يستخدمها مشروع Java؟

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

المحلول

لقد استخدمت SchemaUpdate الخاص بـ Hibernate لأداء نفس وظيفة عمليات الترحيل.إنه في الواقع أسهل من عمليات الترحيل لأنه في كل مرة تقوم فيها بتشغيل التطبيق الخاص بك، فإنه يفحص بنية قاعدة البيانات ويزامنها مع تعييناتك، لذلك لا توجد خطوة إضافية:db:migrate ولا يمكن أبدًا أن يكون تطبيقك غير متزامن مع قاعدة البيانات التي يعمل عليها ضد.ملفات تعيين السبات ليست أكثر تعقيدًا من عمليات ترحيل Rails، لذلك حتى إذا لم تستخدم السبات في التطبيق، فيمكنك الاستفادة منه.الجانب السلبي هو أنها ليست مرنة بقدر التراجع، والترحيل للأسفل، وتشغيل عبارات DML.كما هو موضح في التعليقات، فإنه أيضًا لا يسقط الجداول أو الأعمدة.أقوم بتشغيل طريقة منفصلة للقيام بذلك يدويًا كجزء من عملية تهيئة السبات.

لا أفهم سبب عدم قدرتك على استخدام عمليات ترحيل Rails - طالما أنك لا تمانع في تثبيت المكدس (Ruby، Rake، Rails)، فلن تضطر إلى لمس تطبيقك.

نصائح أخرى

ل مقارنة الميزات بين

  • عن طريق الطيران
  • ليكيباس
  • c5-ديسيبل-الهجرة
  • com.dbdeploy
  • com.mybatis
  • مهاجرةDb
  • migrate4j
  • com.dbmaintain
  • التصحيح التلقائي

القي نظرة على http://flywaydb.org

يجب أن تكون هذه بداية جيدة لك ولأي شخص آخر حدد الأداة المناسبة لهذا المنصب

ليكيباس هو مشروع آخر في هذا المجال يستحق التدقيق عليه.

الكؤوس لديه com.dbmigrate الأداة المساعدة التي تم تصميمها على غرار الأداة المقدمة من Rails.نظرًا لأنه تم تطبيقه في Groovy، فمن المفترض أن تكون قادرًا على استخدامه من أي من مشاريع Java الخاصة بك.

لقد مررت بهذا المنشور أثناء البحث عن نفس السؤال.لم أتوصل إلى أي استنتاجات حول أفضل أداة أو نهج حتى الآن، ولكن إحدى الأدوات التي صادفتها والتي لم يتم ذكرها في الإجابات الأخرى حتى الآن هي com.dbdeploy.سأكون مهتمًا بقراءة أي مقارنات بين هذه الأدوات.

بعض الموارد الأخرى ذات الصلة:منشور مارتن فاولر وبرامود سادالاج القديم إلى حد ما تصميم قاعدة البيانات التطورية, ، والكتاب إعادة هيكلة قواعد البيانات:تصميم قاعدة البيانات التطورية بواسطة سادالاج وسكوت أمبلر.

هناك أيضًا تطبيقان مستقلان لعمليات الترحيل المشابهة للسكك الحديدية في Java:

1) الهجرات المستندة إلى Maven من الكربون خمسة

2) المهام المستندة إلى النمل من هاشروكيت (مفضلي الشخصي)

على الرغم من أن هذه الحزم قد تم كتابتها خصيصًا لـ Maven وAnt، إلا أنه مع بعض الأعمال يمكنك تكييفها مع أي شيء تقريبًا.

ترحيل4j يبدو كمرشح، لكن المشروع لا يبدو ناضجًا بما يكفي لاستخدامه في الإنتاج.

يوجد ايضا DbMaintain الذي تم تطويره في البداية بالداخل الوحدات ولكنه الآن مشروع مخصص.نحن نستخدمه حاليًا ونحن راضون جدًا (وهذا لا يعني عدم وجود أي بدائل جيدة).أدرج المزيد منهم في بلدي قاعدة البيانات + الهجرة الإشارات المرجعية (مع التركيز على الأدوات التي تدعم Maven).

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