我创建了一个迁移,以更新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
谢谢。
答案 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');
});