ترتبط الأوامر `migrate: refresh" و `الترحيل: إعادة التعيين" في لارافيل بإدارة ترحيل قاعدة البيانات ، لكنها تخدم أغراض مختلفة وتتصرف بطرق متميزة أثناء إدارة مخطط قاعدة البيانات. يعد فهم خلافاتهم أمرًا ضروريًا لمطوري Laravel للتعامل بشكل فعال مع حالات قاعدة البيانات أثناء التطوير أو النشر.
ترحيل: تحديث
يتم استخدام أمر "PHP Artisan Migrate: Refresh`" لتراجع جميع الترحيل ثم تشغيلها جميعًا مرة أخرى. هذا يعني أنه يعيد كل عملية ترحيل تم تطبيقها (تنفيذ طريقة "Down ()` لكل ترحيل) ثم تقوم بتشغيل "Up () مرة أخرى لكل ترحيل لإعادة بناء مخطط قاعدة البيانات من نقطة الصفر.
- ماذا تفعل:
- تدحرج جميع الهجرات (إلغاء كل تغييرات المخطط).
- إعادة تشغيل جميع الترحيل لإعادة بناء مخطط قاعدة البيانات.
- حالات الاستخدام النموذجية:
- مفيد عندما تريد إعادة تعيين مخطط قاعدة البيانات مع الحفاظ على بنية قاعدة البيانات متسقة من خلال الترحيل.
- يسمح للاختبار ترحيل لضمان تطبيقها بشكل نظيف عدة مرات.
-غالبًا ما يتم دمجها مع خيار "-seed" ("PHP Artisan Migrate: Refresh-exed`) لإعادة توزيع قاعدة البيانات ببيانات البذور بعد إعادة بناءها.
- المزايا:
- يحافظ على بنية قاعدة البيانات متسقة من خلال التطبيق المناسب لطرق "Down ()` و `up ()`.
-يمكن بشكل انتقائي تحديث عدد محدود من الترحيل باستخدام خيار `-step` (على سبيل المثال ،` php artisan migrate: refresh-step = 5` سوف تراجع وإعادة تشغيل آخر خمسة ترحيل).
- أداء:
- يمكن أن تكون أبطأ من "الترحيل: Fresh" عند التعامل مع عدد كبير من الترحيل لأنها تنفذ طريقة "Down ()" لكل ترحيل قبل إعادة تطبيقها.
- بيانات:
- نظرًا لأنه يعيد جميع الترحيل ، سيتم فقدان البيانات الموجودة في الجداول ما لم يتم إعادة تصنيفها.
- يحتفظ بمنطق التراجع المحدد داخل الترحيل ، بحيث يمكن أن يمنع التناقضات إذا تمت كتابة الهجرات المنخفضة بعناية.
ترحيل: إعادة تعيين
`` php artisan migrate: reset` command Rolling جميع الترحيل التي تم تطبيقها ، وإرجاع قاعدة البيانات إلى حالتها الأصلية غير المهاجرة.
- ماذا تفعل:
- تراجع جميع الهجرات عن طريق تنفيذ طريقة "Down ()` لكل ترحيل.
- على عكس "التحديث" ، فإنه لا يعيد تشغيل الترحيل.
- حالات الاستخدام النموذجية:
- مفيد عندما تريد التراجع تمامًا عن جميع الترحيل دون إعادة تطبيقها.
- يساعد في السيناريوهات حيث تحتاج إلى مسح المخطط تمامًا قبل تحديد ما يجب القيام به بعد ذلك.
- المزايا:
- يمسح جميع التغييرات المخطط قاعدة البيانات القائمة على الترحيل.
- بيانات:
- كما هو الحال مع "التحديث" ، يؤدي التراجع إلى فقدان بيانات الجدول.
- لن يوجد مخطط بمجرد إعادة تعيين جميع الهجرات.
- سلوك:
- يترك قاعدة البيانات في حالة غير مهاجرة.
- يتطلب تشغيل `` php artisan Marrate "بعد ذلك إذا كان يعتزم إعادة بناء المخطط.
سياق إضافي: ترحيل: مقارنة جديدة
على الرغم من عدم سؤاله مباشرة ، فإن الأمر "الترحيل: Fresh" غالبًا ما يتم الخلط بينه وبين "التحديث" و "إعادة الضبط" ويساعد على توضيح الاختلافات بشكل أكبر:
- `PHP Artisan Migrate: Fresh" يسقط جميع الجداول في قاعدة البيانات مباشرة ، دون تشغيل الأساليب "لأسفل () ، ثم يدير جميع الترحيل.
- إنه أسرع لأنه بدلاً من الترحيل مرة أخرى بالهجرة ، فإنه يسقط فقط جميع الجداول.
- مثالي لبيئات التطوير حيث يكون مسح قاعدة البيانات نظيفة بدون منطق لتراجع أمر مقبول.
-مثل "التحديث" ، يمكن دمجه مع "-" لإعادة تهيئة البيانات (على سبيل المثال ، "ترحيل: جديد-").
شرح أعمق للاختلافات
- كيف يحدث التراجع:
- يعتمد كلاهما "Refresh" و "إعادة تعيين" على طرق "Down ()" لكل ترحيل للتراجع عن تغييرات المخطط.
- "إعادة ضبط" تراجع كل شيء ويتوقف.
- `Refresh 'يعيد كل شيء ثم يهاجر كل شيء مرة أخرى.
- حالة قاعدة البيانات بعد الأمر:
- بعد "إعادة التعيين" ، يكون مخطط قاعدة البيانات فارغًا (لا توجد جداول من الترحيل).
- بعد "التحديث" ، يتم إعادة بناء مخطط قاعدة البيانات كما لو تم ترحيله حديثًا.
- فقدان البيانات:
- يسبب كلا الأوامر فقدان البيانات حيث يتم ترحيل جميع الترحيل بالكامل.
-يمكن لـ "التحديث" إعادة تقديم بيانات البذور تلقائيًا إذا تم استخدام علامة "-ذات".
- استخدام الحالات في دورة حياة التنمية:
- استخدم "تحديث" عند تطوير أو اختبار الترحيل وتريد إعادة بناء المخطط الخاص بك مع إعادة تهيئة البيانات.
- استخدم "إعادة التعيين" لتطهير مخطط الترحيل تمامًا قبل تطبيق ترحيل جديد يدويًا أو تشغيل ترحيل جديد.
ملاحظات عملية لمطوري Laravel
- يعتمد كلا الأوامران على الانتقال الذي يتم كتابته بشكل صحيح باستخدام طرق `up ()` و `down ()` ، بمعنى ما إذا كانت الأساليب "لأسفل () مفقودة أو غير مكتملة ، قد تفشل أوامر التراجع (" التحديث "و" إعادة التعيين ") أو تترك قاعدة البيانات في حالة غير متسقة.
- يمكن اعتبار "التحديث" أكثر أمانًا من "جديدة" في البيئات التي تريد احترام منطق التراجع وعلاقات البيانات المحتملة أثناء التراجع.
- لا ينبغي استخدام أي الأمر بلا مبالاة على قواعد بيانات الإنتاج دون نسخ احتياطية ، حيث سيتم فقد جميع البيانات.
- تم تصميمها في المقام الأول للاستخدام في بيئات التطوير المحلي أو الاختبار حيث يكون تكرار المخطط متكررًا ويمكن إعادة ضبط البيانات دون نتيجة.
ملخص
التمييز الرئيسي هو:
- ترحيل: تحديث - تراجع جميع الترحيل ، ثم قم بتشغيل جميع الترحيل مرة أخرى.
- ترحيل: إعادة تعيين - راجع جميع الهجرات ولكن لا تعيد تشغيلها.
`Migrate: Refresh 'يعيد بناء المخطط بشكل فعال من الصفر عبر التراجع والترحيل ، مما يسمح بإعادة التحديد والتحديث التدريجي ، في حين أن" Migrate: Reset "يعيد ببساطة قاعدة البيانات إلى حالة غير مهاجر.
كلا الأوامران هما أدوات أساسية لمطوري Laravel لإدارة إصدارات قاعدة البيانات ، ولكنها تخدم مهام سير العمل المختلفة ولها آثار فريدة على حالة قاعدة البيانات.
يساعد هذا الفهم في اختيار الأمر المناسب لمراحل مختلفة من تطوير التطبيقات واختبارها ونشرها.
يجب أن ينظر كل استخدام في الآثار المترتبة على فقدان البيانات ، واتساق مخطط التطبيق ، وقصد المطور لإدارة ترحيل قاعدة البيانات داخل مشروع Laravel.