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

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

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

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

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

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');
        });
    }
}
محمد ( 613 تجربه )
11 ماه پیش

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

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 تجربه )
11 ماه پیش

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

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