إدارة تغيير قاعدة البيانات وعملية بناء باستخدام TFS [مغلق

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

  •  19-09-2019
  •  | 
  •  

سؤال

أي شخص يستخدم خادم مؤسسة الفريق لإدارة قواعد البيانات الخاصة بهم؟ نحن نستخدم حاليا التخريب. يشكو الفريق أنه من الصعب إنشاء عملية بناء في TFS ويعزز منه.

أي مؤشرات جيدة، المقالات، التجارب؟

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

المحلول

إدارة تغيير DB ليس لديها الكثير للقيام به مع اختيارك لأنظمة التحكم الإصدار، طالما أن لديك واحدة في المقام الأول. بالطبع، إذا كنت تستخدم أدوات إدارة التغيير من MS، فقد تكون متأكدا تماما من أنهم تم اختبارهم ضد TFS وبقية مكدس مطور MS جيدا. هذا صحيح ما إذا كنت تستخدم DBPRO أو أشكال التكامل الأقدم / Crappier الأقدم التي تظهر في "مشروع قاعدة البيانات" الكلاسيكي أو في SQL Management Studio. ولكن ليس هناك سبب لا يمكنك استخدام DBPro مع التخريب أو البوابة الحمراء مع TFS لهذه المسألة.

الشيء نفسه ينطبق على بناء جيل. C.Cnet VS Build، Nant vs Msbuild، إلخ ... أدوات MS الرسمية تميل إلى أن تكون تقريبا على قدم المساواة مع المنافسة. أنت لم توصف عملية نشر DB الخاصة بك في تفاصيل كبيرة ولكن لا يمكنني فهمها بشكل كبير في البرنامج النصي في MSBUIRD أكثر مما تستخدمه الآن، إذا كان ذلك على الإطلاق. كما أنه ليس من الصعب اختيار عمودي مختلفة في نقاط مختلفة في المكدس: يمكنك أن يكون لديك محرك أقراص CC.NET المستندة إلى Msbuild التي تستخدم سطر الأوامر في البوابة الحمراء أو أي مجموعة أخرى. يحدث أن أعتقد أن التكامل الضيق الذي يقدمه الالتصاق إلى MS World يفوق بعيدا عن Quirks في أي أداة واحدة، ولكن الاختيار موجود هناك.

اسمحوا لي أن وصل إلى النقطة: يبدو أن مشكلتك الرئيسية ليست تقنية، ولكن الحصول على DBAs لإعتماد عنصر تحكم الإصدار في المقام الأول. إذا كانت بيئات "ديف" و "Prod" هي كيانات حية خاصة بهم، بدلا من الأجهزة العامة محددة حصريا نتيجة لبعض عملية البناء القابلة للتكرار، فأنت لا تستخدم تحكم الإصدار حقا في كتابي. تخيل أنه إذا كان مطور عميل يدقق في بعض الأحيان، فإن DLLs على الأجهزة المختلفة في جميع أنحاء الشركة، ثم اشتكى من أنهم من الصعب للغاية مزامنة؛ كنت تعتقد أنه كان مجنون.

أبعد من ذلك، فإن الاستثمار الأكثر أهمية هو الحصول على مكان ينجز فيه أي شيء إلى DB مباشرة (أي أكثر مما كنت تتجه حوله في٪ ProgramFiles٪). إذا لم يكن في مستودع المصدر، فون غير موجود.

لا أعتقد كيف تصل إلى هناك أهمية. يمكنك كتابة جميع يخلقك ويغير في المفكرة، والتحقق منها من سطر الأوامر، وكن لديك "عملية الإنشاء" هي برنامج نصي شل من 2-سطر يتسلل إليهم في ملف مشهور حيث يدرس البرنامج النصي للنشر وبعد أو يمكنك استخدام أداة فاخرة مثل DBPRO لتضخيم إنتاجيتك مع اختبار Intellisense / Unit النمذجة / غير المتصلة / إلخ. هناك أسباب رائعة للرئاسة في الاتجاه الأخير (خاصة إذا كنت تؤمن البرمجة التصريحية هو شيء يستحقه بشكل عام)، لكنني أعتقد حقا أن الخطوة الأولى هي الأكبر.

نصائح أخرى

نحن نستخدم جناح فريق Visual Studio 2008 جنبا إلى جنب مع TFS. كنت قادرا على استيراد قواعد بياناتنا إلى TFS مع سهولة النسبية. ومع ذلك، فقد وجدت أن معظم الفريق (بما في ذلك DBAs) ينسى تحديث TFS عند تعديل كائن في SQL.

ستعتمد أي نوع من عمليات البناء على DB Pro لتوليد البرامج النصية الفرقية بين بيئة Dev الخاصة بك والبيئة المستهدفة. لقد وجدت أن هذا يمثل مشكلة لأن بيئة DEV ليست مباراة نظيفة لبيئة الإنتاج لدينا. الأذونات مختلفة بالتأكيد ولدينا عدد من الحالات الأخرى التي تم فيها تطبيق التغييرات في DEV / QA ولكن لم يتم نقلها إلى Prod (ولكن كما لم تعكسها أبدا). تحدي محاولة عزل التغييرات الخاصة بك من الكثير من التغييرات الأخرى في DB Pro تحديا لأنه يجعلك UI تستبعد الكائنات من البرنامج النصي النهائي (لذلك إذا قمت بتعديل كائنات 2 و 1000 آخرين مختلفين، فعليك إلغاء تحديد 1000 كائنات أخرى). بالإضافة إلى ذلك، غالبا ما يتم تكوين مقارنة المخطط في الأدوات -> خيارات في حين تتيح لك الأدوات الأخرى مثل البوابة الحمراء تكوين المقارنة على نفس الشاشة التي تبدأها.

أعتقد أن الأداة لديها إمكانات ولكننا نحتاج بالتأكيد إلى تكييف إجراءاتنا وأنظمتنا الحالية للعمل مع TFS. بالإضافة إلى ذلك، فإن وجود إصدار على كائنات قاعدة البيانات الخاصة بك هو لا يقدر بثمن، حتى لو لم يكن الأمر مؤمنا بنسبة 100٪.

نحن نستخدم TFS مع إصدار قاعدة البيانات.

يحتوي البرنامج النصي لإنشاء قاعدة البيانات على البرامج النصية بتحميل بيانات DEV في DB.

نحن ننشر منتظم لبيئة DEV. جميع المطورين لديهم SQL مثبتة محليا وأنهم يقومون بحفظ الأحدث ونشرهم.

في بيئة اختبار الوحدة، تسجيل الدخول، قواعد البيانات (OLTP و OLAP)، النسخ المتماثل، حزم ETL، وظائف SQL وظائف، إلخ.

لا يقوم المطورون بإجراء أي تغييرات خارجية وعدم التحقق منها لأنه ثم لا يعمل النشر في اختبار الوحدة.

هناك المزيد من الرأي في هذا في سؤال تجاوز المكدس:ما هي الفوائد الحقيقية لطبعة قاعدة بيانات نظام Visual Studio (GDR)؟(لا أعرف لماذا، لكن عمليات البحث أحضرني إلى هذا السؤال بدلا من ذلك، ولدي الكثير من المشاكل في العثور على آراء حول هذا. نأمل أن يساعد هذا الرابط الآخرين في أداء نفس البحث.)

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