انتقل إلى محتوى الدرس
الدرس 29
دورة إطار العمل Laravel

إنشاء وتشغيل التهجيرات المجهولة والتراجع عنها في LaravelCreating and Running Anonymous Migrations in Laravel

توليد ملفات التهجير المجهولة الحديثة وكتابة دالتي البناء up والتراجع down وتشغيل أوامر migrate و rollback.
أقسام الدرس
6
الأمثلة
6
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
0
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

تعيد ملفات التهجير الحديثة في Laravel كائناً من فئة مجهولة الاسم مما يمنع تماماً حدوث أي تعارض في أسماء الكلاسات عند تكرار التعديلات. يتيح استخدام أمر make:migration مع التسمية القياسية توليد الكود المبدئي لإنشاء الجدول أو تعديله تلقائياً.

  • الفئة المجهولة (Anonymous Class): استخدام صيغة new class extends Migration لمنع تصادم أسماء الكلاسات.
  • خيار الإنشاء (--create): يجهز كود إنشاء الجدول وحذفه العكسي تلقائياً داخل الملف المولد.
  • خيار التعديل (--table): يجهز قالب تعديل جدول قائم مسبقاً عبر الواجهة Schema::table.
مخطط معماري يوضح إنشاء وتشغيل التهجيرات المجهولة والتراجع عنها في Laravel في إطار العمل Laravel 12
PHP
# Generate create and alter migrations via Artisan
php artisan make:migration create_flights_table
php artisan make:migration add_code_to_flights \
    --table=flights

تضم كل فئة تهجير دالتين متقابلتين: دالة up لتطبيق التغيير البنائي الجديد، ودالة down لعكس ذلك التغيير بدقة. إن كتابة دالة down بشكل سليم باستخدام Schema::dropIfExists تضمن قدرة الفريق على التراجع الآمن عن أي تحديث خاطئ دون ترك جداول معطوبة.

  • دالة البناء (up): تعمل عند تشغيل أمر التهجير لإنشاء الجداول أو إضافة الأعمدة الجديدة.
  • دالة التراجع (down): تعمل عند التراجع عن التهجير لإلغاء التغييرات التي أحدثتها دالة up تماماً.
  • الحذف الآمن (dropIfExists): إزالة الجدول عند التراجع بأمان دون إطلاق خطأ إن لم يكن الجدول موجوداً.
PHP
public function up(): void {
    Schema::create('tags', function ($table) {
        $table->id();
    });
}
public function down(): void {
    Schema::dropIfExists('tags');
}

يقوم الأمر php artisan migrate بفحص مجلد التهجيرات وتشغيل كافة الملفات المعلقة بترتيبها الزمني وتسجيلها تحت رقم دفعة جديد. وإذا أردت معاينة جمل SQL الفعلية التي سيولدها التهجير دون المساس بقاعدة البيانات، مرر الخيار --pretend.

  • تشغيل التهجيرات (migrate): تنفيذ جميع الملفات المعلقة وتوثيقها برقم دفعة جديد في جدول التتبع.
  • المعاينة الجافة (--pretend): طباعة استعلامات SQL المترجمة في الطرفية للمراجعة دون تنفيذها فعلياً.
  • التأكيد الإنتاجي (--force): خيار إلزامي لتأكيد تشغيل التهجيرات الجديدة داخل خوادم الإنتاج.
PHP
# Preview SQL queries first, then apply migrations
php artisan migrate:status
php artisan migrate --pretend
php artisan migrate

عندما تحتاج لتعديل تهجير شغلته للتو أثناء التطوير، يقوم الأمر migrate:rollback بالتراجع عن آخر دفعة تهجير عبر استدعاء دوال down الخاصة بها. ويمكنك أيضاً تحديد عدد دقيق من الملفات للتراجع عنها باستخدام الخيار --step أو معاينة SQL عبر --pretend.

  • التراجع عن الدفعة (migrate:rollback): إلغاء كافة التهجيرات المسجلة ضمن آخر رقم دفعة في جدول التتبع.
  • التراجع بالخطوات (--step): التراجع عن عدد محدد من ملفات التهجير الأخيرة بغض النظر عن رقم دفعتها.
  • التراجع الكامل (migrate:reset): استدعاء دالة down لجميع التهجيرات المنفذة في المشروع بترتيب عكسي.
PHP
# Roll back the last batch or a single migration step
php artisan migrate:rollback
php artisan migrate:rollback --step=1
php artisan migrate:rollback --pretend

أثناء المراحل الأولى للتطوير المحلي، كثيراً ما تحتاج لإعادة بناء كافة الجداول من الصفر على قاعدة نظيفة. وبينما يستدعي أمر migrate:refresh دوال down أولاً، يقوم أمر migrate:fresh بحذف جميع الجداول مباشرة وبسرعة فائقة قبل إعادة تشغيل دوال up.

  • التصفير المباشر (migrate:fresh): إسقاط جميع جداول القاعدة فوراً وإعادة تشغيل كافة التهجيرات من البداية.
  • التحديث المتسلسل (migrate:refresh): تشغيل دوال down لجميع الملفات أولاً ثم إعادة تشغيل دوال up.
  • للتطوير المحلي فقط (Destructive Warning): كلا الأمرين يمسحان كافة البيانات ويحظر تشغيلهما نهائياً في بيئة الإنتاج.
PHP
# Local development schema rebuild commands
php artisan migrate:rollback --step=2
php artisan migrate:refresh --step=2
php artisan migrate:fresh

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

وجه المقارنة الهندسيالأسلوب اليدوي أو غير المحميمعيار Laravel 12 الحديث
تسمية الكلاساتكلاسات مسماة قديمة تسبب أخطاء تكرار الاسمفئات مجهولة الاسم (return new class extends Migration)
إمكانية التراجعكتابة جمل الحذف يدوياً عند وقوع خطأ في الجدولدالة down متناظرة تُنفذ تلقائياً عبر أمر migrate:rollback
معاينة الاستعلاماتتنفيذ جمل التعديل مباشرة دون معرفة أثرها الدقيقمعاينة جمل SQL مسبقاً دون تنفيذ عبر الخيار --pretend
إعادة البناء المحليحذف الجداول يدوياً واحداً تلو الآخر من واجهة القاعدةتصفير وإعادة بناء فورية بأمر واحد عبر migrate:fresh
PHP
# Safe forward migration workflow
php artisan migrate:status
php artisan migrate --pretend
php artisan migrate --force
خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

أتقنت في هذا الدرس حول «إنشاء وتشغيل التهجيرات المجهولة والتراجع عنها في Laravel» مفاهيم توليد ملفات التهجير المجهولة الحديثة، وكتابة دالتي البناء والتراجع العكسي، وتشغيل التهجيرات المعلقة ومعاينة SQL وفق معايير Laravel 12 الحديثة.

الخطوة التالية والدرس القادم

انتقل الآن إلى الدرس التالي «بناء الجداول وأنواع الأعمدة ومعدلاتها عبر Schema Builder» للبناء التراكمي على ما تعلمته.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Running Migrations تشغيل التهجيرات
توليد ملفات التهجير المجهولة الحديثة وكتابة دالتي البناء up والتراجع down وتشغيل أوامر migrate و rollback.
للمراجعة
02 Generating Anonymous Migration Files توليد ملفات التهجير المجهولة الحديثة
المفهوم الهندسي والتطبيق العملي المباشر لقسم توليد ملفات التهجير المجهولة الحديثة في إطار العمل Laravel 12.
للمراجعة
03 Reversible Up and Down Methods كتابة دالتي البناء والتراجع العكسي
المفهوم الهندسي والتطبيق العملي المباشر لقسم كتابة دالتي البناء والتراجع العكسي في إطار العمل Laravel 12.
للمراجعة
04 Executing Pending Database Migrations تشغيل التهجيرات المعلقة ومعاينة SQL
المفهوم الهندسي والتطبيق العملي المباشر لقسم تشغيل التهجيرات المعلقة ومعاينة SQL في إطار العمل Laravel 12.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 MVC MVC
Model View Controller
النمط المعماري الذي يفصل بين نماذج البيانات Models، وطبقات العرض Views، والمتحكمات Controllers في Laravel.
للمراجعة
02 CLI CLI
Command Line Interface
واجهة سطر الأوامر التي تعمل عبر أداة php artisan لتوليد الملفات وإدارة التطبيق.
للمراجعة
03 HTTP HTTP
Hypertext Transfer Protocol
بروتوكول نقل النص الفائق الذي ينظم طلبات المتصفح واستجابات خادم Laravel.
للمراجعة
04 PSR PSR
PHP Standards Recommendations
المعايير القياسية للغة PHP مثل التحميل التلقائي PSR-4 التي يلتزم بها إطار العمل Laravel.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. اكتب ونفّذ المثال البرمجي المشروح في قسم «توليد ملفات التهجير المجهولة الحديثة» داخل مشروع Laravel 12 المحلي وتحقق من النتيجة.

  2. بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم «كتابة دالتي البناء والتراجع العكسي» وقارن مخرجات التنفيذ.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

8أسئلة 3أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي8 أسئلة تنتظرك
01

ما الهدف الهندسي الأساسي من توليد ملفات التهجير المجهولة الحديثة في إطار العمل Laravel 12؟

يسهم توليد ملفات التهجير المجهولة الحديثة في تنظيم منطق التطبيق بأسلوب معياري آمن وقابل للصيانة في Laravel 12.

02

يساعد الالتزام باصطلاحات Laravel 12 الرسمية في قسم «كتابة دالتي البناء والتراجع العكسي» على رفع جودة الكود وسهولة اختباره آلياً.

صواب؛ الالتزام بالمعايير القياسية في Laravel 12 يجعل الكود واضحاً وسهل الفحص والصيانة.

03

أي آلية في Laravel 12 تتولى إدارة تشغيل التهجيرات المعلقة ومعاينة SQL بشكل مباشر ومنظم؟

توفر طبقة إطار العمل وحاوية الخدمات في Laravel 12 الأدوات القياسية لإدارة تشغيل التهجيرات المعلقة ومعاينة SQL.

04

لماذا يُعد تطبيق التراجع الآمن عن دفعات التهجير مهماً عند بناء تطبيقات Laravel 12 جاهزة للإنتاج؟

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

05

في Laravel 12، يُنصح بكتابة مفاتيح الإنتاج السرية مباشرة داخل ملفات الكود المصدري المرفوعة إلى Git بدلاً من ملفات البيئة.

خطأ؛ يجب حفظ المفاتيح والبيانات السرية في متغيرات البيئة وعدم رفعها أبداً إلى مستودع Git.

06

ما المزايا الهندسية التي يحققها تطبيق تصفير وإعادة بناء جداول التطوير في Laravel 12؟ (اختر كل ما ينطبق)

يوفر فصلاً واضحاً للمسؤوليات، وأماناً أعلى أثناء التنفيذ، وتعاوناً أسهل بين أفراد الفريق.

07

يوظف إطار العمل Laravel 12 ميزات PHP 8 الحديثة مثل تحديد أنواع القيم المرجعة لجعل الكود أكثر وضوحاً وأماناً.

صواب؛ يعتمد Laravel 12 بشكل كامل على الصياغة الحديثة للغة PHP 8.2+ وسلامة الأنواع.

08

ما الفرق الجوهري بين معيار Laravel 12 الحديث والملفات اليدوية التقليدية في ملخص أوامر إنشاء وتشغيل التهجيرات؟

يوفر Laravel 12 واجهات قياسية موحدة وحماية مدمجة تغني عن الكود اليدوي المعرض للأخطاء.