أتمتة عمليات ترحيل كائنات قاعدة البيانات من التحكم بالمصدر

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

سؤال

أنا أبحث عن بعض "أفضل الممارسات" لأتمتة نشر الإجراءات المخزنة/طرق العرض/الوظائف/تغييرات الجدول من التحكم بالمصادر.أنا أستخدم StarTeam & ANT لذلك يتم الاهتمام بالملصقات؛ما أبحث عنه هو كيف تعامل البعض منكم مع أتمتة عملية سحب هذه الكائنات من المصدر - وليس بالضرورة StarTeam.

أود أن ينتهي بي الأمر ببرنامج نصي واحد يمكن بعد ذلك تنفيذه وإيداعه وتصنيفه.

أنا لا أطلب من أي شخص أن يكتب ذلك - فقط بعض الأفكار أو الأساليب التي نجحت (أو لم تنجح) في الماضي.

أحاول تنظيف الفوضى وأريد التأكد من أنني اقتربت من هذا "الصحيح" قدر الإمكان.

نقوم بتخزين الجداول/طرق العرض/الوظائف وما إلى ذلك.في ملفات فردية في StarTeam وقاعدة بياناتنا هي SQL 2K5.

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

المحلول

نستخدم SQL مقارنة من redgate (http://www.red-gate.com/).

لدينا قاعدة بيانات للإنتاج وقاعدة بيانات للتطوير ولكل مطور قاعدة بيانات خاصة به.

تتم مزامنة قاعدة بيانات التطوير مع التغييرات التي أجراها المطور على قاعدة البيانات الخاصة به عندما يقوم بالتحقق من التغييرات.

يقوم المطور أيضًا بالتحقق من البرنامج النصي للمزامنة وتقرير المقارنة الذي تم إنشاؤه بواسطة مقارنة SQL.

عندما ننشر تطبيقنا، نقوم ببساطة بمزامنة قاعدة بيانات التطوير مع قاعدة بيانات الإنتاج باستخدام مقارنة SQL.

وهذا يناسبنا لأن تطبيقنا مخصص للاستخدام الداخلي فقط.إذا لم يكن هذا هو السيناريو الخاص بك، فسألقي نظرة على SQL Packager (أيضًا من redgate).

نصائح أخرى

تحقق في الهجرات (أشار إليه أندرو بيترز في وظيفة أخرى)

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

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

كما أشار كارل، يمكنك استخدام الأداة المساعدة diff لإنشاء البرامج النصية للتحديث.يعد RedGate منتجًا جيدًا، لكن SQL Server 2k5 يأتي معه TableDiff والتي يجب أن تقوم بهذه المهمة أيضًا.

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