كيف أقوم بإنشاء قواعد بيانات مرحلية متعددة في MySQL؟


الاجابه 1:

شكرا ل A2A. أفترض أنك تتحدث فقط عن الهيكل. بالطبع سيكون هناك الكثير من البيانات غير المرغوب فيها ، ولكن لا يجب أن يكون لديك بنية غير مهمة.

أنت تبحث عن

التحكم في الإصدار لقواعد البيانات.

هذه موجودة. هناك عدد قليل من هناك.

أمثلة:

التحكم في إصدار قاعدة البيانات ، أصبح سهلاً!

سائل | إعادة بناء قاعدة البيانات | Liquibase

حتى في

phpMyAdmin

يتضمن أداة "التتبع" التي يمكن أن تسمح بتتبع التغييرات الهيكلية ودمجها مع قاعدة بيانات أخرى.

هل يجب استخدامها؟

إنه قابل للنقاش. يجب

هل حقا

يتم تصميم قواعد البيانات الخاصة بك. لذلك يتم التفكير في أي تغييرات قبل التنفيذ. يبدو أن بعض الإجابات تدعو إلى "مجرد إضافة العمود والأمل في الأفضل".

أنا شخصياً لا أستخدم ضوابط المراجعة

كثير

. أنا أستخدم phpMyAdmin من حين لآخر ، ولكن

فقط لنرى

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

من المحتمل أن تعاني من ذلك من خلال كتابة برنامج نصي للترحيل.


الاجابه 2:

لست متأكدًا من أنني أفهمك تمامًا ، نظرًا لأن النسخ المتماثل لا يكفي بالنسبة لك أو مجرد تفريغ جديد.

يمكنك إنشاء إدراج أو تحديث البرامج النصية عن طريق الاستعلام عن الجداول الافتراضية INFORMATION_SCHEMA للأعمدة وأسماء الجداول

أنت تفعل شيئًا مثل تحديد "إدراج في" ، جدول_اسم ، 'قيم' '' || عمود_اسم || ..... من information_schema ...

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

select'update '، table_name،' set '، column_name،' = (حدد t_int من g_table حيث p_id = '' && b '') حيث '، العمود_اسم ،' = (حدد pa_int من g_patient حيث p_id = '' && a ')) ؛ " من user_tab_columns حيث (اسم العمود مثل "٪ PA_INT" أو اسم العمود مثل "٪ P_" أو اسم العمود مثل "٪ P_ID" أو اسم العمود مثل "٪ P_INT" أو اسم العمود مثل "٪ S_INT") واسم الجدول ليس في (حدد اسم_المنصر من طريقة عرض المستخدم)

ربما

خبراء أداء قاعدة البيانات

يحتوي على أدوات أو منتديات مفيدة.


الاجابه 3:

لماذا تدمج التدريج مرة أخرى إلى السيد (بافتراض أن السيد يعني الإنتاج)؟ لا يتم ذلك عادةً. هل تشير إلى مزامنة الجدول؟ أين تضاف الجداول الجديدة في مراحل ويجب إنشاؤها / تحديثها في همز؟ إذا كانت هذه هي المشكلة ، فإن استخدام أداة مثل sqlYog ، والتي تسمح لك بإنشاء أشكال الجدول ، يمكن أن تخفف من ألم إدارة DML.

إذا لم تكن هذه هي المشاكل ، هل يمكنك توضيح المشكلة بشكل أفضل؟


الاجابه 4:

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