هل من الممكن استخدام مشروع قاعدة البيانات MS VS كحل كامل لإصدار قاعدة البيانات؟

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

سؤال

في مشروعنا لدينا العديد من قواعد بيانات الإنتاج والعديد من devs. تمثل كل قاعدة بيانات إنتاج بعض "إصدار المشروع/التوطين الفرعي". نستخدم SQL Server 2008.

لذلك ، أحتاج إلى تطوير استراتيجية إصدار قاعدة البيانات باستخدام مشروع قاعدة بيانات MS Visual Studio. لقد قرأت الكثير من المقالات حول مشاريع إصدار قاعدة البيانات ومشاريع قاعدة البيانات ، لكن لا يزال لدي الكثير من الأسئلة:

  1. كيف ينبغي للمطورين تنفيذ تغييراتهم على مشروع DB؟ (افضل تمرين)

  2. كيفية إنشاء البرنامج النصي "أحدث إصدار" قابل للتطبيق 100 ٪ دون تدخل بشري (تخطي بعض الكائنات ، وإعادة كتابة بعض التغييرات ، إلخ)؟

  3. كيفية إدارة تغييرات البيانات مع مشروع قاعدة بيانات MS Visual Studio؟ أعلم عن البرامج النصية قبل/ما بعد النشر ، لكنني أعتقد أنها غير قادر على حل هذه المشكلة. (مثال: أحتاج إلى إعادة تجديد بعض الجدول إلى آخر).

سيكون "الحل المثالي":

  1. يقوم المطورون بإنشاء وصيانة مشروع قاعدة البيانات لقاعدة البيانات [ProductionDB].

  2. مع الإصدار الجديد I نشر مشروع قاعدة البيانات إلى [productionDB] مع جميع التغييرات اللازمة.

  3. يغير المطورون مشروع قاعدة البيانات ويكتبون بعض البرامج النصية لمعالجة البيانات للتغييرات الملموسة.

  4. مع الإصدار الجديد I نشر مشروع قاعدة البيانات إلى [productionDB] مع جميع التغييرات اللازمة.

لذا ، السؤال الأخير: هل من المستحسن استخدام مشروع قاعدة البيانات للأغراض الموضحة أعلاه أو يستخدم شخص ما سيناريو/حل مماثل؟

ملاحظة: لقد قرأت بالفعل المناقشات التالية:

  1. تغييرات قاعدة البيانات الإصدار [مغلق
  2. كيف يمكنني إصدار قاعدة بيانات MS SQL الخاصة بي في SVN؟
  3. تبحث عن حل لإصدار قاعدة البيانات
  4. هل هناك نظام تحكم في الإصدار لتغييرات بنية قاعدة البيانات؟
هل كانت مفيدة؟

المحلول

يستخدم مشروع قاعدة البيانات بدقة لمعظم الأسباب التي ذكرتها هنا -

  1. المطورين فقط قم بالبحث في ملفات نصوص قاعدة البيانات ، وإجراء التغييرات ، والتحقق منها مرة أخرى. ضع في اعتبارك أنك سوف تقوم بتغيير ملفات .SQL وليس مباشرة الكائنات الموجودة في أي قاعدة بيانات DEV. لذلك إذا كنت بحاجة إلى إضافة عمودين إلى جدول قاعدة البيانات ، فستقوم بتعديل البرنامج النصي Create Table لهذا الجدول ، وعدم كتابة برنامج نصي Alter لهذا الجدول.

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

  3. يمكن أن يكون البرنامج النصي للنشر قابلاً للتسليم يتم اختباره بشكل منفصل مقابل نسخة prod ثم يتم تطبيقه على Prod كتصحيح.

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

نصائح أخرى

ما وصفته هو السبب في وجود مشروع قاعدة البيانات.

للإجابة على أسئلتكم:

  1. الأمر متروك للمطور. يمكنك إما العمل في Visual Studio وتحرير ملفات المشروع مباشرة أو تحرير نسخة مباشرة من قاعدة البيانات في MGMT Studio واستخدام مخطط مقارنة VS لمزامنة التغييرات مرة أخرى مع المشروع. لقد كنت أستخدمه لبضعة أشهر وأجد كلاهما يعمل بشكل جيد ، على الرغم من أنني أميل إلى تحرير ملفات المشروع مباشرةً.

  2. يقوم نشر المشروع بإنشاء أحدث إصدار إذا قمت بتحديد المربع لإسقاط Desty DB أولاً. يمكنك القيام بذلك دون تدخل بشري عن طريق الاتصال بـ VSDBCMD أثناء الإنشاء الخاص بك

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

أتمنى أن يساعدك هذا.

مشكلة البيانات أمر صعب حله. هنا عند Red Gate ، تلقينا العديد من الطلبات لهذا لدينا SQL Source Control أداة ، التي لها أوجه متوازية مع مشاريع قاعدة البيانات VS. والخبر السار هو أننا نضيف بنشاط الدعم لهذا ، ويجب أن يكون لدينا بناء مبكر لتجربته قبل عيد الميلاد. إذا كنت مهتمًا ، فما عليك سوى التسجيل للحصول على إشعارات الوصول المبكر في http://www.surveymk.com/s/sqlsourceControl_eapsignup . نود الحصول على ملاحظاتك.

قد ترغب في إلقاء نظرة على المصدر المفتوح BSN Modulestore Toolkit, ، الذي يحاول تنفيذ سير العمل هذا (وهو في الواقع يفعل أكثر من ذلك).

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