هل هناك نسخة نظام التحكم في بنية قاعدة البيانات التغييرات ؟

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

سؤال

وكثيرا ما واجهت المشكلة التالية.

أنا أعمل على بعض التغييرات على المشروع الذي يتطلب جديدة الجداول أو الأعمدة في قاعدة البيانات.لقد جعل تعديلات قاعدة البيانات و مواصلة العمل.عادة ما أتذكر أن أكتب تغييرات بحيث يمكن تكرارها على نظام العيش.ومع ذلك, أنا لا أتذكر دائما ما غيرت و لا تذكر دائما أن أكتبه.

لذا جعل دفع إلى نظام العيش والحصول على كبير خطأ واضح أنه لا يوجد NewColumnX, المطعم.

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

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

المحلول

في روبي على القضبان ، هناك مفهوم الهجرة -- سريعة النصي إلى تغيير قاعدة البيانات.

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

إلى ترحيل ما يصل, ، يمكنك تشغيل الأوامر تسمى "db:ترحيل" التي تبدو في الإصدار الخاص بك و ينطبق اللازمة البرامج النصية.يمكنك الانتقال إلى أسفل بطريقة مماثلة.

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

نصائح أخرى

أنا قليلا من المدرسة القديمة بما في ذلك استخدام ملفات المصدر لإنشاء قاعدة البيانات.هناك في الواقع الملفات 2 - مشروع قاعدة البيانات الخاصة بنا.مزود المشروع-التحديثات.sql للمرة الأولى في مخطط دائم البيانات, و الثانية على التعديلات.بالطبع كلاهما تحت التحكم بالمصادر.

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

أيضا, أنا عادة ما يكون الجدول في db - Config - مثل:

SQL

CREATE TABLE Config
(
    cfg_tag VARCHAR(50),
    cfg_value VARCHAR(100)
);

INSERT INTO Config(cfg_tag, cfg_value) VALUES
( 'db_version', '$Revision: $'),
( 'db_revision', '$Revision: $');

ثم إضافة ما يلي إلى تحديث القسم:

UPDATE Config SET cfg_value='$Revision: $' WHERE cfg_tag='db_revision';

على db_version فقط يحصل تغيير قاعدة البيانات صوغه ، db_revision يعطيني مؤشرا على مدى db هو من الأساس.

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

MyBatis (سابقا iBatis) لديها مخطط الهجرة, أداة للاستخدام على سطر الأوامر.هو مكتوب في جاوة على الرغم من يمكن أن تستخدم مع أي مشروع.

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

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

Redgate لديها منتج يسمى SQL المصدر التحكم.أنه يدمج مع TFS, إس, SourceGear قبو, قبو Pro, الزئبقي, قهرا, و بوابة.

أنا أوصي SQL دلتا.أنا فقط استخدامه لتوليد مهرجان دبي السينمائي الدولي مخطوطات عندما انتهيت الترميز بلدي ميزة التحقق من تلك النصوص في المصدر أداة التحكم (الزئبقي :))

لديهم كل ملقم SQL & Oracle الإصدار.

لا عجب أن لا أحد ذكر أداة مفتوحة المصدر liquibase الذي هو جافا القائمة و يجب أن تعمل على كل ما يقرب من قاعدة البيانات التي تدعم jdbc.مقارنة القضبان يستخدم xml بدلا روبي إلى إجراء تغييرات المخطط.على الرغم من أنني لا يروق xml المجال لغات معينة باردة جدا الاستفادة من xml هو أن liquibase يعرف كيفية استرجاع بعض العمليات مثل

<createTable tableName="USER"> 
   <column name="firstname" type="varchar(255)"/>
</createTable>

لذلك أنت لا تحتاج إلى التعامل مع هذا بنفسك

نقية البيانات sql أو بيانات الواردات كما يتم دعم.

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

إذا كنت تستخدم SQL Server سيكون من الصعب الفوز البيانات الرجل (ويعرف أيضا باسم قاعدة بيانات الإصدار من Visual Studio).بمجرد الحصول على تعليق منه ، بعمل مخطط مقارنة بين المصدر تسيطر على نسخة من قاعدة بيانات الإصدار في الإنتاج هو نسيم.و بنقرة واحدة يمكنك إنشاء الخاصة بك مهرجان دبي السينمائي الدولي DDL.

هناك تعليمي فيديو على MSDN هذا مفيد جدا.

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

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

أكثر جرأة الدور الذي يمكن أن نرى ، هو تتبع تبعيات, على سبيل المثال, ولا نشر الجدول باء قد تحتاج إلى تحديث قبل الجدول ألف -

Oracle, يمكنني استخدام الضفدع, التي يمكن تفريغ مخطط لعدد من ملفات منفصلة (مثل ملف واحد في الجدول).لدي بعض النصوص التي تدير هذه المجموعة في قهرا, ولكن أعتقد أنه يجب أن تكون قابلة للتنفيذ بسهولة في مجرد عن أي تنقيح نظام التحكم.

نلقي نظرة على حزمة أوراكل DBMS_METADATA.

ولا سيما الطرق التالية مفيدة بشكل خاص:

  • DBMS_METADATA.GET_DDL
  • DBMS_METADATA.SET_TRANSFORM_PARAM
  • DBMS_METADATA.GET_GRANTED_DDL

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

لست متأكدا إذا كان هناك شيء من هذا بسيط بالنسبة MSSQL.

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

لقد فعلت هذا من سنوات-إدارة (أو تحاول إدارة) مخطط الإصدارات.أفضل نهج تعتمد على الأدوات لديك.إذا كان يمكنك الحصول على السعي البرمجيات أداة "إدارة مخطط" عليك أن تكون في حالة جيدة.أوراكل الخاصة ، أدنى الأداة التي تسمى أيضا "إدارة مخطط" (مربكة كثيرا؟) أن لا يوصي.

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

PLSQL المطور أداة من كل حول أتمتة ، البرنامج المساعد مستودعات أن يعمل حسنا ( ولكن ليست كبيرة) مع Visual Source Safe.

من الويب:

الإصدار التحكم في المكونات يوفر ضيق التكامل بين PL/SQL Developer IDE >>وأي نظام التحكم في الإصدار أنه يدعم Microsoft SCC مواصفات واجهة.>>وهذا يشمل النسخة الأكثر شعبية أنظمة التحكم مثل Microsoft Visual SourceSafe, >>Merant PVCS و MKS المصدر النزاهة.

http://www.allroundautomations.com/plsvcs.html

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

على سبيل المثال:عكس التنمية المخطط في إيه استوديو -- مقارنة الإنتاج وسوف قائمة من الاختلافات.فإنه يمكن النصي التغييرات أو فقط من خلال دفعهم تلقائيا.

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

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

يمكنك استخدام Microsoft SQL Server أدوات البيانات في visual studio لإنشاء البرامج النصية كائنات قاعدة البيانات كجزء من عملية SQL Server المشروع.ثم يمكنك إضافة النصوص إلى مصدر التحكم باستخدام عنصر تحكم مصدر التكامل المضمنة في visual studio.أيضا, SQL Server مشاريع تسمح لك التحقق من كائنات قاعدة البيانات باستخدام مترجم وتوليد نشر النصوص إلى تحديث قاعدة بيانات موجودة أو إنشاء واحدة جديدة.

لقد استخدمنا MS Team Edition قاعدة بيانات النظام مع نجاح جيدة.أنه يدمج مع TFS التحكم في الإصدار Visual Studio أكثر أو أقل بسلاسة و يسمح لنا أن يدير المخزنة procs ، آراء ، وما إلى ذلك ، بسهولة.حل الصراع يمكن أن يكون الألم ، ولكن تاريخ الإصدار الكامل مرة واحدة القيام به.بعد ذلك الهجرات إلى ضمان الجودة و الإنتاج هي بسيطة للغاية.

فمن الإنصاف أن نقول أن هذا الإصدار 1.0 المنتج, رغم أن, هو لا يخلو من بعض القضايا.

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

http://www.red-gate.com/Products/schema_compare_for_oracle/index.htm

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

أنصح أحد النهجين.أولا الاستثمار في باور ديزاينر من Sybase.Enterprise Edition.فإنه يسمح لك لتصميم المادية datamodels, وأكثر من ذلك كثيرا.لكنه يأتي مع مستودع التي تسمح لك للتحقق في النماذج الخاصة بك.كل جديد في الاختيار يمكن أن يكون نسخة جديدة ، فإنه يمكن مقارنة أي نسخة إلى أي نسخة أخرى وحتى إلى ما هو موجود في قاعدة البيانات الخاصة بك في ذلك الوقت.ثم فإنه سيتم تقديم قائمة من كل الفرق و أسأل التي ينبغي أن هاجر... ثم يبني السيناريو أن تفعل ذلك.انها ليست رخيصة ولكن أنها صفقة في ضعف السعر و هو العائد على الاستثمار عن 6 أشهر.

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

اثنين من الكتاب التوصيات:"إعادة بيع ديون قواعد البيانات" من Ambler و Sadalage و "رشيقة قاعدة البيانات تقنيات" من Ambler.

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

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