database - ويب - وضع قاعدة بيانات على النت




في تطبيق ويب، كيف يمكن تحديث بنية قاعدة البيانات؟ (6)

إذا تغيرت البيانات الخاصة بك بعد نشر التطبيق، كيف يمكنك الحفاظ على قاعدة البيانات حتى الآن؟

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

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

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

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

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


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

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

يتم تخزين كل هذا تحت التخريب بحيث يمكنني التراجع عند الحاجة. أنا ربما يجب أن تبقي على نوع من الارتباط بين مراجعة سفن من بلدي التطبيق ومراجعة نموذجي.


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

معقد؟ قليلا. إنقاذ الحياة. abosolutely. لا شيء مثل مطاردة إروس في التطبيق لأن المخطط هو الخطأ.


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

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

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

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


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

حفظ النصوص النصية الفردية، إمهو ليست جيدة فقط للنشر، ولكن أيضا جيدة لتوفير العناصر التي يمكن التحقق منها في التحكم في المصدر.


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

انها أداة عظيمة للقيام بما كنت تسأل عن وكثير أكثر من ذلك بكثير.






model