نسخة المسار ، أتمتة DB التغييرات المخطط مع جانغو

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

  •  09-06-2019
  •  | 
  •  

سؤال

أنا أبحث حاليا في بيثون إطار Django المستقبل db-بناء تطبيقات الويب فضلا عن منفذ من بعض التطبيقات حاليا مكتوب في PHP.واحدة من أكثر شرا من القضايا خلال السنوات الماضية كانت تتبع تغييرات مخطط قاعدة البيانات و نشر هذه التغييرات على النظم الإنتاجية.لم يتجرأ يسأل عن كونها قادرة على التراجع لهم أيضا ، ولكن بالطبع اختبار وتصحيح الأخطاء التي من شأنها أن تكون ميزة كبيرة.من أسئلة أخرى هنا (مثل هذا واحد أو هذا واحد) ، أستطيع أن أرى أنني لست وحيدا و أن هذه ليست مشكلة تافهة.كما وجدت الكثير من الإلهام في الأجوبة هناك.

الآن, كما جانغو يبدو أن تكون قوية جدا, لا توجد لديها أي أدوات مساعدة مع سبق ؟ ربما حتى في مستندات و فاتني ذلك ؟

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

المحلول

هناك اثنين على الأقل من طرف ثالث المرافق للتعامل مع DB schema عمليات الترحيل ، جنوب و جانغو تطور.أنا لم يحاكم أي أحد, ولكن لقد سمعت أشياء جيدة عن الجنوب ، على الرغم من التطور قد حول لفترة أطول قليلا.

أنظروا أيضا ، SchemaEvolution على جانغو ويكي.أنها مجرد صفحة ويكي حول ترحيل ديسيبل.

نصائح أخرى

آخر مرة راجعت (نسخة 0.97), syncdb سوف تكون قادرة على إضافة جداول إلى مزامنة DB schema مع models.py ولكن لا يمكن:

  • إعادة تسمية أو إضافة عمود على بالسكان ديسيبل.تحتاج إلى القيام بذلك عن طريق اليد.
  • Refactorize النموذج الخاص بك (مثل تقسيم الجدول إلى قسمين) و إعادة DB الخاص بك وفقا لذلك.

قد يكون من الممكن على الرغم من أن كتابة جانغو السيناريو لجعل الهجرة من خلال اللعب مع اثنين مختلفة مديري, ولكن هذا قد يستغرق الأعمار إذا DB الخاص بك كبيرة.

كان هناك نقاش عن DB schema التغييرات في الآونة الأخيرة DjangoCon;هناك الفيديو من الدورة (شكرا إلى Google) ، والتي ينبغي أن توفر بعض المعلومات المفيدة في عدد من هذه المرافق.

والآن هناك أيضا dmigrations.من إعلان:

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

وهذا يعني العمل الإضافي المطورين من إنشاء الهجرات ، ولكنه أيضا يجعل العملية برمتها شفافة تماما—لدينا مشاريع قررنا الذهاب مع أبسط نظام التي يمكن أن تعمل.

(بلدي جريئة)

سمعت الكثير عن جانغو تطور مخطط فرع و كانت تلك opions من المستخدمين الفعليين.فإنه mostely يعمل من خارج منطقة الجزاء و تفعل ما ينبغي القيام به.

ينبغي أن يو البحث Dmigrations, يعمل قليلا مختلفة من جانغو-eveoltions.فإنه يظهر لك كل ما تقوم به و compliccated الأشياء ما يطلب منك intervetnions.يجب أن يكون كبيرا.

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