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

السؤال

نشر

كيف يمكنني التحديث على حقل foreign key موجود مسبقًا في ملف تهجير البيانات ؟

Schema::create('table_one', function(Blueprint $table) 
{ 
    $table->increments('id'); 
    $table->string('name'); 
    $table->integer('table_two_id')->unsigned(); 
    $table->foreign('table_two_id')->references('id')->on('table_two'); 
    $table->timestamps(); 
});

أريد تغيير بعض القيود ليصبح هكذا:

$table->foreign('table_two_id')->references('id')->on('table_two')->onDelete('cascade');

 

Recommended Posts

  • 0
نشر

بدايةً قم بإنشاء ملف تهجير بيانات لتعديل الجدول الحالي ونسميه مثلًا "update_foreign"

عن طريق الأمر التالي:

php artisan make:migration update_foreign --table table_one

حيث أنّ:

اقتباس

update_foreign: اسم ملف التهجير

--table table_one: إشارة لاسم الجدول الحالي المراد تعديله

 

وفي داخل الملف نقوم بحذف قيد foreign key ومن ثمّ إضافة القيود الجديدة على الحقل كما هو مطلوب:

public function up()
{
    Schema::table('table_one', function (Blueprint $table) {
        $table->dropForeign(['table_two_id']); // حذف القيد السابق

        $table->foreign('table_two_id') // إضافة القيد الجديد
            ->references('id')
            ->on('table_two')
            ->onDelete('cascade');
    });
}

بعد ذلك نقوم بتهجير البيانات من خلال الأمر:

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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...