یه سوال فنی

5 ماه پیش توسط امید حیدری آپدیت شد
آفلاین
user-avatar
امید حیدری ( 14058 تجربه )
5 ماه پیش
تخصص : Laravel

لینک کوتاه اشتراک گذاری

0

سلام دوستان عرض به خدمت من یه سوال دارم
در لاراول وقتی تغییری در مایگریشن بدیم باید برای انجام تغییرات باید ریست بشه ، و مشکل اینجاست که اگر در پروژه ای که روی هاست سوار و چندین هزار سطر اطلاعات داشته باشه بخوایم یه ستونی اضافه کنیم ، جدول باید ریست بشه که تغییرات اجرا بشه .
نمیدونم تونستم منظورم برسونم یا نه ولی هرکی فهمید راهنمایی کنه 😉😂

@hesammousavi

بهترین پاسخ
آفلاین
user-avatar
Ali_Gh
5 ماه پیش

سلام دوست عزیز شما مجبور نیستید حتمی همون مایگریشن قبلی رو ویرایش کنید
بهترین راه اینه یه مایگریشن جدید ایجاد کنید به طور مثال با نام add_to_payments_table و فیلد جدید رو به همون table که از قبل دارید اضافه کنید
به طور مثال به کد زیر نگاه کنید
الان ما به پرداخت ها که از قبل داشتیم فیلد discount_code رو اضافه کردیم که میتونه نول باشه و گفتیم که بعد از فیلد status اضافه بشه
که شما میتونید نگید که کجا اضافه بشه خودش خودکار میره اخر همه
اینجوری هیچ تغیری تو اطلاعات قبلیتون به وجود نمیاد و فقط یه فیلد به جدولی که از قبل دارید اضافه میشه

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class AddToPaymentsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('payments', function (Blueprint $table) {
            $table->string('discount_code')->nullable()->after('status');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('payments', function (Blueprint $table) {
            $table->dropColumn(['discount_code']);
        });
    }
}
آفلاین
user-avatar
Ali_Gh ( 18684 تجربه )
5 ماه پیش
تخصص : توسعه دهنده وب , لاراول

لینک کوتاه اشتراک گذاری

2

سلام دوست عزیز شما مجبور نیستید حتمی همون مایگریشن قبلی رو ویرایش کنید
بهترین راه اینه یه مایگریشن جدید ایجاد کنید به طور مثال با نام add_to_payments_table و فیلد جدید رو به همون table که از قبل دارید اضافه کنید
به طور مثال به کد زیر نگاه کنید
الان ما به پرداخت ها که از قبل داشتیم فیلد discount_code رو اضافه کردیم که میتونه نول باشه و گفتیم که بعد از فیلد status اضافه بشه
که شما میتونید نگید که کجا اضافه بشه خودش خودکار میره اخر همه
اینجوری هیچ تغیری تو اطلاعات قبلیتون به وجود نمیاد و فقط یه فیلد به جدولی که از قبل دارید اضافه میشه

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class AddToPaymentsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('payments', function (Blueprint $table) {
            $table->string('discount_code')->nullable()->after('status');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('payments', function (Blueprint $table) {
            $table->dropColumn(['discount_code']);
        });
    }
}
آفلاین
user-avatar
نیما - ش ( 74989 تجربه )
5 ماه پیش
تخصص : برنامه نویس وب

لینک کوتاه اشتراک گذاری

1

بهترین راه استفاده کردن از یک ماگریشن جدید هست که دوستمون به خوبی بهش اشاره کردن

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.