هل هناك خيارات عامة للتحكم في الإصدار داخل قاعدة بيانات؟

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

سؤال

لدي كمية صغيرة من الخبرة باستخدام SVN على مشاريع التطوير الخاصة بي، ولدي القليل من الخبرة مع قواعد البيانات العلائقية. أعرف المفاهيم الأساسية مثل الجداول، وبيانات SQL، لكنني بعيد عن كونها خبيرا.

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

هل تتوفر أي حلول عامة يمكنها إضافة هذا النوع من الوظائف المستقلة عن مخطط قاعدة البيانات الفعلية؟ سأكون مهتما بالحلول التي تعمل مع MySQL أو MS SQL Server.

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

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

المحلول

يمكنك النص على جميع الإجراءات الخاصة بك DDL وتخزينها وملفات نصية منتظمة.

ثم يمكنك ببساطة استخدام SVN للحصول على إصدار قاعدة البيانات.

نصائح أخرى

لم أجد مطلقا حلا يعمل بالإضافة إلى التخريب، لكن إليك بعض الأشياء التي قمت بها والتي ساعدت:

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

  2. تخزين التطوير الكامل DB في التخريب. هذا لا يعمل عادة جيدا بالنسبة لي إذا كان هناك الكثير من البيانات أو يتغير كثيرا. ولكن في بعض المشاريع يمكن أن تعمل.

أحتفظ بالحفاظ على إنشاء النصوص في نظام التحكم في الإصدار الخاص بي.

هناك شيئان أستطيع التفكير فيه:

  • http://www.liquibase.org/ - يوفر وسيلة لإدارة تغييرات قاعدة البيانات بشكل عام. ينشئ الملفات التي تلتزم بالتحكم في المصادر، ويساعد في إدارة التغييرات عبر قواعد بيانات التطوير المختلفة، إلخ.
  • http://www.viget.com/extend/backup-your-database-in-git/ - يصف هذا استراتيجية لنسخ قاعدة بيانات إلى عنصر تحكم مصدر، ولكن يمكن استخدام نفس الاستراتيجية فقط على المخطط. في هذا المخطط، ستكون قاعدة البيانات في منطقة منفصلة من الرمز الرئيسي الخاص بك. (يمكن استخدام هذا مع أنظمة التحكم المصدر الأخرى أيضا.)
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top