كيفية الاحتفاظ بالإجراءات المخزنة والبرامج النصية الأخرى في مستودع SVN/آخر؟

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

سؤال

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

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

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

أفكار؟

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

المحلول

يبدو لي أنك لا ترغب في استخدام التحكم بالمراجعة بشكل صحيح.

من الواضح أن أحد الحلول هو الحصول على ملفات البرنامج النصي لجميع المكونات المختلفة في دليل أو أكثر في مكان ما وببساطة استخدام TortoisesVN أو مثل الاحتفاظ بها في SVN

هذا هو ما ينبغي القيام به.سيكون لديك نسختك المحلية التي تعمل عليها (تطوير الجديد، التغيير والتبديل القديم، وما إلى ذلك) ومع الانتهاء من المكونات/الإجراءات/إلخ، ستلتزم بها بشكل فردي حتى تضطر إلى بدء العملية من جديد.

إن تنفيذ تعليمات برمجية نصف مكتملة لمجرد مرور وقت "X" منذ آخر التزام بها هو أمر غير دقيق ويضمن التسبب في حزن أي شخص آخر يستخدم المستودع.

نصائح أخرى

أجد أنه من الأفضل التعامل مع الإجراءات المخزنة تمامًا مثل أي كود آخر قابل للترجمة:الكود موجود في المستودع، يمكنك التحقق منه لإجراء تغييرات وتحميله في أداة التطوير الخاصة بك لتجميع الكود أو نشره.

يمكنك إنشاء ملف دفعي وجدولته:

  • احذف محتويات دليل البرامج النصية الخاص بك
  • باستخدام شيء من هذا القبيل تصدير SQLScript لتصدير كافة الكائنات إلى البرنامج النصي/البرامج النصية
  • التزام svn

يرجى الملاحظة:على الرغم من أنه سيكون لديك الكائنات تحت التحكم بالمصادر، فلن يكون لديك البيانات أو تقدمها (هل هذا حقل تمت إعادة تسميته أم حقل واحد جديد وواحد محذوف؟).

هذا النهج جيد للحفاظ على سجل التغيير.ولكن، بالطبع، لا ينبغي عليك أبدًا الالتزام تلقائيًا بـ "بناء الإنتاج" (إلا إذا كنت تحب الإصدارات المعطلة).

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

أنا أوصي ريدجيت قارن SQL لهذا - فهو يسمح لك بمقارنة إصدارات قاعدة البيانات وإنشاء برامج نصية للتغيير - كما أنه قابل للبرمجة بسهولة إلى حد ما.

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

غير متأكد من النطاق السعري الخاص بك، ولكن شبح ديسيبل يمكن أن يكون خيارا بالنسبة لك.

أنا لا أعمل في هذه الشركة (أو أملك المنتج) ولكن في بحثي حول نفس المشكلة، بدا هذا المنتج واعدًا جدًا.

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

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

يمكنني أن أوصي بـ DBPro الذي يعد جزءًا من Visual Studio Team Edition.لقد تم استخدامه لبضعة أشهر لتخزين جميع أجزاء قاعدة البيانات في Team Foundation Server وكذلك للنشر ومقارنة قاعدة البيانات، وما إلى ذلك.

وبطبيعة الحال، كما ذكر شخص آخر، فإن ذلك يعتمد على البيئة الخاصة بك والنطاق السعري.

لقد كتبت أداة مساعدة لإلقاء جميع الأجزاء ذات الصلة من قاعدة البيانات الخاصة بي في بنية الدليل التي أستخدم SVN عليها.لم أحاول أبدًا دمجه في المدير، ولكن إذا كنت مهتمًا، فهو هنا: http://www.reluctantdba.com/dbas-and-programmers/sqltools/svnforsql2005.aspx

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

يمكنك دائمًا محاولة دمج SourceSafe مع SQL Server.إليك بداية سريعة: وصلة .للعمل معه، يجب أن يكون لديك إصدار Managment Studio Developers.

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