امید حیدری
3 سال پیش توسط امید حیدری مطرح شد
2 پاسخ

یه سوال فنی

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

@hesammousavi


ثبت پرسش جدید
علی قنواتی
تخصص : توسعه دهنده وب , لاراول
@aligh 3 سال پیش مطرح شد
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']);
        });
    }
}

نیما - ش
تخصص : برنامه نویس وب
@nimageneral 3 سال پیش مطرح شد
1

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


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام