Redgate · DevOps لقواعد البيانات
التحكم في إصدارات قواعد البيانات: كيف تضعون المخطط تحت التحكم وتُبقونه فيه
التحكم في إصدارات قواعد البيانات يعني أن المستودع، لا الخادم العامل، هو المرجع للمخطط والبيانات المرجعية والصلاحيات، وأن كل تغيير يصل إلى كل بيئة عبر المسار المسجَّل نفسه. وأغلب الفرق تضع كود التطبيق تحت التحكم في الإصدارات وتترك قاعدة البيانات كما كانت. توضح هذه الصفحة المشكلة، وطريقتين لإدارة إصدارات قاعدة البيانات، وكيف تبدؤون من نظام إنتاج قائم، ثم أين تدخل أداة Flyway من Redgate.
نُشر في 4 دقائق قراءة
باختصار
- ما هو: حفظ المخطط والبيانات المرجعية والصلاحيات في مستودع، مع تطبيق كل تغيير على كل بيئة عبر خط تسليم يسجّل ما نُفّذ.
- ما الذي يحل محله: الخادم العامل مرجعًا وحيدًا، والتغييرات التي تُجرى يدويًا من وحدة التحكم.
- طريقتان: سكربتات ترحيل مرتبة بأرقام إصدارات، أو نموذج للمخطط يحفظ كل كائن كما ينبغي أن يكون. وتدعم Flyway الطريقتين مع بعض المنصات.
- لمن: للفرق التي لا تستطيع الجزم بما هو في الإنتاج، أو تنتظر تغييرات مخططها نافذة صيانة.
- أين تساعد إنتركي: خط الأساس، وخط التسليم، والفحوص، والتراجع المجرَّب، في السعودية، بالعربية والإنجليزية، مع أدوات Redgate حيث تناسب.
لماذا تحتاج قاعدة البيانات إلى التحكم في الإصدارات
يخضع كود التطبيق للتحكم في الإصدارات منذ عقود. أما قاعدة البيانات فكثيرًا ما تكون خادمًا عاملًا وبعض السكربتات في مجلد مشترك، وشخصًا واحدًا يعرف ما في الإنتاج فعلًا. والحالات التي تصفها الفرق مألوفة: لا أحد متأكد مما في الإنتاج، وتغيير المخطط يحتاج إلى نافذة صيانة ومسؤول قواعد بيانات في منتصف الليل، والبيئات تنحرف عن بعضها، والتراجع يعني استعادة نسخة احتياطية.
والحساب بسيط. إن كان التطبيق يُنشر أسبوعيًا وقاعدة البيانات تُنشر كل ربع سنة، فالنظام كله يُنشر كل ربع سنة. والتحكم في الإصدارات أولى خطوات رفع هذا القيد، لأن أي أتمتة لاحقة مستحيلة ما دامت حالة الهدف الحالية مسألة رأي. وتسلسل العمل كاملًا في صفحة DevOps لقواعد البيانات.
طريقتان لإدارة إصدارات قاعدة البيانات
| الطريقة | ما الذي يُحفظ | الميزة | الكلفة |
|---|---|---|---|
| ترحيلات بأرقام إصدارات | سلسلة مرتبة من السكربتات، لكل منها رقم إصدار، تُطبَّق مرة واحدة وتُسجَّل في جدول سجل | ما نُفّذ في الإنتاج هو بالضبط ما روجع، وبالترتيب الذي نُفّذ به | يتوزع تاريخ الكائن الواحد على سكربتات كثيرة |
| نموذج المخطط | تعريف واحد لكل كائن، مع البيانات المرجعية، يُحفظ ملفات | يُظهر الفرق بين نسختين كيف تغيّر الكائن عبر الزمن | يبقى السكربت الذي يغيّر الإنتاج بحاجة إلى توليد ومراجعة |
تصف وثائق Redgate أداة Flyway بأنها تعمل بالترحيلات، وتذكر أنها مع منصات منها MySQL وPostgreSQL وSQL Server تستطيع أيضًا التقاط الكائنات والبيانات المرجعية في نموذج للمخطط يُحفظ في نظام التحكم في الإصدارات. ويمكن الجمع بين الطريقتين. وأيهما يتصدر يتوقف على الفريق، أما خط التسليم فهو نفسه في الحالتين.
ما الذي يوضع في المستودع
قاعدة البيانات الخاضعة للتحكم في الإصدارات تضع هذه كلها في المستودع:
- كائنات المخطط: الجداول والعروض والإجراءات وبقية البنية.
- البيانات المرجعية: القيم المرجعية التي يعتمد عليها التطبيق.
- الصلاحيات: من يحق له القراءة ومن يحق له التغيير.
- الترحيلات: كل تغيير، ومعه عكسه حيث يمكن كتابته بأمان.
- تعريفات خط التسليم: كيف يُفحص التغيير ويُنقل ويُسجَّل.
الانحراف: الفرق بين المستودع والخادم
الانحراف (Drift) هو أي فرق بين ما يقوله المستودع وما تحتويه البيئة. ويظهر حين يصلح أحدهم مشكلة مباشرة على الخادم، أو حين تُبنى بيئة بسكربت لم يشغّله أحد من البداية إلى النهاية منذ مدة. ويكشفه فحص الانحراف، ثم يحسم شخص ما هل كان الفرق مقصودًا. فالأداة تبلّغ عن الانحراف، لكنها لا تقرر أي الطرفين على صواب.
وتذكر Redgate اكتشاف الانحراف والتقارير عنه ضمن إمكانات Flyway Enterprise. وأيًّا كانت الأداة فالقاعدة واحدة: لا يصل أي تغيير إلى الإنتاج من وحدة التحكم، وتقرير الانحراف يبيّن أي بيئة تخالف اليوم.
كيف تبدؤون من قاعدة إنتاج قائمة
-
التقطوا خط الأساس.
سجّلوا مخطط الإنتاج على أنه الأصل، وقارنوا به كل بيئة أخرى. فلا يمكن إعادة بناء تاريخ لم يُسجَّل، والإصدار الأول هو اليوم.
-
احسموا الانحراف.
قرّروا أي الفروق كان مقصودًا. أبقوه، وصحّحوا الباقي.
-
انقلوا التغييرات إلى ترحيلات.
من الآن يكون كل تغيير ترحيلًا له رقم إصدار، ويُراجع قبل دمجه.
-
طبّقوها عبر خط تسليم.
يطبّق خط التسليم الترحيلات بالترتيب، ويسجّل ما نُفّذ، ويرفض التشغيل خارج التسلسل أو على هدف لا يطابق تاريخه.
-
أثبتوا التراجع.
نفّذوا عكس كل تغيير في بيئة أدنى قبل أن يصل التغيير الأصلي إلى الإنتاج.
أين تدخل Flyway، وما الذي لا تستطيعه
Flyway هي الأداة التي تنفّذها إنتركي للترحيلات ذات أرقام الإصدارات عبر المنصات العلائقية الشائعة، وتذكر Redgate دعم أكثر من 60 منصة. تطبّق Flyway الترحيلات بترتيب أرقامها، وتسجّل كل ترحيل في جدول سجل، ويمكن تشغيلها من خط التسليم الذي يستخدمه التطبيق. والإصدارات والترخيص والدعم في صفحة Flyway، والتنفيذ الأوسع في تنفيذ Redgate.
وتطبّق Flyway أي ترحيل تُعطاه، آمنًا كان أم لا. فالتحكم في الإصدارات يجعل التغييرات مرئية وقابلة للتكرار، لكنه لا يجعل التغيير الهدّام آمنًا. وهذا يأتي من أنماط تغيير تكون بالأصل إضافية وقابلة للعكس، والعمل نفسه ينطبق أيًّا كانت أداة الترحيل التي تطبّق النتيجة.
روابط ذات صلةصفحة Flywayتنفيذ Redgate
كيف تعرفون أنه يعمل
فحوص يستطيع من خارج المشروع إجراءها
- المستودع، لا الخادم، هو المرجع للمخطط.
- كل ترحيل له رقم إصدار، ويطبّقه خط التسليم بالترتيب، ويُسجَّل.
- يستطيع شخص لم يفعل ذلك من قبل إعادة بناء بيئة أدنى من المستودع.
- لكل ترحيل عكسه، وقد نُفّذ هذا العكس فعلًا.
أسئلة يطرحها المشترون
هل التحكم في إصدارات قاعدة البيانات هو حفظ السكربتات في Git؟
لا. حفظ السكربتات في Git بداية، لكن التحكم في إصدارات قاعدة البيانات يتطلب أيضًا أن يكون المستودع هو المرجع، وأن تُقارَن به كل بيئة، وأن تُطبَّق التغييرات عبر خط تسليم يسجّل ما نُفّذ.
هل نضع البيانات تحت التحكم في الإصدارات كالمخطط؟
ضعوا المخطط والصلاحيات والبيانات المرجعية التي يعتمد عليها التطبيق. ولا تضعوا بيانات العملاء في المستودع؛ فيجب أن تحتوي بيئات غير الإنتاج على بيانات مقنَّعة أو مولَّدة.
الترحيلات أم نموذج المخطط: أيهما نختار؟
تحفظ الترحيلات الترتيب الدقيق الذي نُفّذت به التغييرات، ويُظهر نموذج المخطط كيف تغيّر كل كائن عبر الزمن. وتدعم Flyway الترحيلات، ومع منصات منها MySQL وPostgreSQL وSQL Server تستطيع أيضًا حفظ نموذج للمخطط. ونختار مع فريقكم.
كيف نبدأ والإنتاج يعمل فعلًا؟
التقطوا مخطط الإنتاج خطَّ أساس، وقارنوا به كل بيئة، واحسموا الانحراف، وطبّقوا كل تغيير لاحق ترحيلًا له رقم إصدار عبر خط تسليم.
هل يلغي نافذة الصيانة؟
ليس وحده. فالنافذة تأتي غالبًا من تغييرات لا يمكن تطبيقها والنظام يعمل. والتحكم في الإصدارات يجعل التغييرات مرئية وقابلة للتكرار، أما إعادة تصميم أنماط التغيير فهي ما يزيل النافذة.
التالي
صفحات ذات صلة
الخطوة التالية
لستم متأكدين مما في مخطط الإنتاج لديكم؟
أخبرونا بالمنصات وكيف يصل تغيير المخطط إلى الإنتاج اليوم. ونقترح خط أساس وفحص انحراف خطوةً أولى.
أو مباشرةً
+966-11-2180999 [email protected]أبراج التعاونية، البرج الشمالي، الطابق السابع، طريق الملك فهد، العليا، ص.ب. ٥٦٨٣٥، الرياض ١١٥٦٤، المملكة العربية السعودية