اعمال تغییرات روی یک ماگریشن و سپس روی جدول مربوطه در دیتا بیس

- 8 ماه پیش
توسط سید رضا موسوی آپدیت شد
سید رضا موسوی ( 3577 تجربه )
8 ماه پیش

سلام
یک دستور میخوام که دیتابیس رفرش نشود،
مثلا نام یک فیلد یا نوع یک فیلد را می خواهم از روی ماگریشن تغییر دهم، ماگریشنی که با یکسری ماگریشن دیگه روی دیتا بیس اعمال و ساخته شده اند و عملا استفاده از رول بک کاری اشتباه هست.

بهترین پاسخ انتخاب شده توسط سید رضا موسوی
محمد
8 ماه پیش

سلام
نیازی به ریفرش نیست. شما می‌تونید یک مایگریشن دیگه درست کنید که در اون مایگریشن فقط یک فیلد را به یک جدول اضافه کنید.
مثلا

class AddColumnApiTokenToUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->string('api_token',60)->nullable()->unique();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->dropColumn('api_token');
        });
    }
}
محمد ( 563 تجربه )
8 ماه پیش

سلام
نیازی به ریفرش نیست. شما می‌تونید یک مایگریشن دیگه درست کنید که در اون مایگریشن فقط یک فیلد را به یک جدول اضافه کنید.
مثلا

class AddColumnApiTokenToUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->string('api_token',60)->nullable()->unique();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->dropColumn('api_token');
        });
    }
}
hossein ( 150 تجربه )
8 ماه پیش

سلام
اگه فیلد primarykey باشه بخواهیم تغییر بدیم باید چه کار کنیم؟

برای ارسال پاسخ باید وارد سایت شوید