سؤال

هذا سؤال لأولئك الذين يتطورون في فريق من Devs حيث يكون لديك جميع قواعد بيانات منفصلة. تقوم بإصدار قاعدة البيانات الخاصة بك باستخدام التحكم في المصدر والأدوات الأخرى التي ستجلب تلقائيًا قواعد بيانات DEV إلى آخر إصدار من قاعدة البيانات (المخطط ، البيانات ، SP ، وظائف ، إلخ).

حسنا عظيم! لكن انتظر! ماذا لو كنت تتطور على الإصدار 4.0 من برنامجك ، ولكن الآن تحتاج إلى تحويل الفروع إلى فرع 3.2 لإصلاح الخلل؟ يمكن أن يكون المخطط (بالتأكيد بالتأكيد) مختلفًا تمامًا ... الآن ...

أفترض أنه إذا واجهت الجهد الإضافي لكتابة البرامج النصية للتراجع إلى جانب البرامج النصية للتغيير ، فقد ينجح ذلك. لكن هذا يبدو وكأنه الكثير من العمل - هل يستحق ذلك حقًا؟

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

المحلول

من الأسهل بكثير إنشاء قاعدة بيانات جديدة 3.2 فرع والعمل مع ذلك أثناء العمل على رمز الفرع 3.2. لا يبدو لي معقولًا أن أطلب أن يكون لكل مطور قاعدة بيانات واحدة بالضبط للعمل معها.

نصائح أخرى

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

فيما يلي بعض الاقتراحات للعمل في هذا الوضع:

  • إذا كان إنشاء مثيلات قاعدة البيانات من النص بطيئًا جدًا ، فقم بإجراء ذاكرة التخزين المؤقت على وحدة تخزين مقدمة مشتركة ، وموجودة بمحتويات جميع ملفات المخطط / البيانات (أو مجموع MD5 منها).
  • اكتب خطافًا مسبقًا للتأكد من أن المخطط ومقالب البيانات في مثيل المطور هي نفسها تلك الموجودة تحت التحكم في الإصدار. هذا يمنع الأشخاص من إجراء تغييرات على قاعدة بيانات DEV الخاصة بهم باستخدام أداة تفاعلية ، ومن ثم نسيان ارتكابهم.
  • ذكرت تغيير البرامج النصية. تعاملهم كمسؤولية. على الرغم من أن سيناريو النشر الخاص بك (على سبيل المثال للعملاء الذين يرغبون في الترقية إلى مكانه) ، فإنهم يكررون المعلومات من تاريخ إصدار قاعدة البيانات ، و Per Per Murphy Law Duplication تعني التزامن عاجلاً أم آجلاً. حاول أن تلقائيًا تلقائيًا البرامج النصية للتغيير من أصول قاعدة البيانات التي تم إصدارها باستخدام "Diff" ؛ أو إذا كان لا يمكن تحقيق ذلك ، فكرس بعض اختبارات الوحدة الخطيرة لترقيات قاعدة البيانات.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top