description

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

- 6 ماه پیش
توسط رضا محسناتی آپدیت شد
رضا محسناتی ( 2119 تجربه )
6 ماه پیش

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

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

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

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

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

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

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

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