Laravel Migration-列类型字符串不会更新大小

时间:2018-07-25 16:11:55

标签: php mysql laravel laravel-migrations

我创建了一个迁移,以更新MySQL中VARCHAR列的大小并在同一迁移中重命名它。因此,要通过Laravel模式更改VARCHAR()类型,我们基于Laravel docs

使用 string()

这是功能up():

Schema::table('address', function (Blueprint $table) {
    $table->string('place_id', 100)->change();
    $table->renameColumn('place_id', 'full_address');
});

和功能down():

Schema::table('address', function (Blueprint $table) {
    $table->string('full_address', 255)->change();
    $table->renameColumn('full_address', 'place_id');
});

它正在重命名该列,但它没有更改大小,为什么有什么主意?

MySQL表

Field, table, Type, Character Set, Display Size
place_id,address,VARCHAR,utf8,255

谢谢。

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,我不确定这是否是最好的解决方案,但是最好使用多个模式

Schema::table('address', function (Blueprint $table) {
  $table->string('place_id', 100)->change();
});

Schema::table('address', function (Blueprint $table) {
  $table->renameColumn('place_id', 'full_address');
});