اذهب إلى المحتوى

السؤال

نشر

عند إضافة حقل جديد في جدول موجود مسبقا أقوم بالتعديل على ملف migration الموجود من قبل

public function up()
{
    Schema::create('users', function ($table) {
        $table->integer("paid");
    });
}

ومن ثم أقوم بتنفيذ الأمر

php artisan migrate:refresh

ولكن هل من طريقة أخرى غير هذه الطريقة  حتى لا أفقد البيانات الموجودة سابقا؟

وشكرا

Recommended Posts

  • 0
نشر

يمكنك إنشاء حقل جديد في جدول موجود من قبل عن طريق استخدام خيار –table الذي نمرر من خلاله اسم الجدول الموجود عند استخدام make:migration لإضافة الحقول الجديدة إليه

php artisan make:migration users_add_paid --table=users

وسيتم إنشاء ملف migration  جديد باسم users_add_paid نقوم بداخله بإضافة الحقول التي تريدها في دالة up(), كالتالي:

public function up(){
    Schema::table('users', function($table) {
        $table->integer('paid');
    });
}

وفي دالة down() نقوم بإضافة الكود الخاص بحذف هذا الحقل عند عمل rollback

public function down()
{
    Schema::table('users', function($table) {
        $table->dropColumn('paid');
    });
}	

وبعد تجهيز الحقول, نقوم بتشغيل  migration لتطبيق التعديلات

php artisan migrate

 

  • 0
نشر

يمكنك تنفيذ الأمر التالي 

php artisan migrate:make add_paid_to_users

في لارافل 3 أما في لارافل +5 يمكنك تنفيذ التالي 

php artisan make:migration add_paid_to_users_table --table=users

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

public function up()
{
    Schema::table('users', function($table) {
        $table->integer('paid');
    });
}

ولا تنس إضافة خيار rollback 

public function down()
{
    Schema::table('users', function($table) {
        $table->dropColumn('paid');
    });
}

ثم تنفيذ الأمر 

php artisan migrate

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...