Mohammad Yousef3 نشر 27 مارس 2021 أرسل تقرير نشر 27 مارس 2021 عند إضافة حقل جديد في جدول موجود مسبقا أقوم بالتعديل على ملف migration الموجود من قبل public function up() { Schema::create('users', function ($table) { $table->integer("paid"); }); } ومن ثم أقوم بتنفيذ الأمر php artisan migrate:refresh ولكن هل من طريقة أخرى غير هذه الطريقة حتى لا أفقد البيانات الموجودة سابقا؟ وشكرا اقتباس
0 Waleed Alfakiat نشر 27 مارس 2021 أرسل تقرير نشر 27 مارس 2021 يمكنك إنشاء حقل جديد في جدول موجود من قبل عن طريق استخدام خيار –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 1 اقتباس
0 بلال زيادة نشر 27 مارس 2021 أرسل تقرير نشر 27 مارس 2021 يمكنك تنفيذ الأمر التالي 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 1 اقتباس
السؤال
Mohammad Yousef3
عند إضافة حقل جديد في جدول موجود مسبقا أقوم بالتعديل على ملف migration الموجود من قبل
ومن ثم أقوم بتنفيذ الأمر
ولكن هل من طريقة أخرى غير هذه الطريقة حتى لا أفقد البيانات الموجودة سابقا؟
وشكرا
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.