【发布时间】:2019-01-02 12:58:16
【问题描述】:
我创建了一个迁移来更新 MySQL 中 VARCHAR 列的大小并在同一迁移中重命名它。因此,要通过 Laravel Schema 更改 VARCHAR() 类型,我们使用 string() 基于Laravel docs
这是 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
提前谢谢你。
【问题讨论】:
-
“它不工作”到底是什么意思
-
您正在运行的
php artisan ...命令是什么? -
我更新了问题。我正在运行
php artisan migrate和migrate:rollback。我不知道是否可以在同一迁移中更改大小并重命名列。 -
运行
migrate和运行migrate:rollback之前的表格是什么样子的? -
这对我很有帮助:
Schema::defaultStringLength(191);请参阅 stackoverflow.com/a/23786522/470749 和 laravel-news.com/laravel-5-4-key-too-long-error
标签: php mysql laravel laravel-migrations