【发布时间】:2020-11-05 16:50:10
【问题描述】:
在我的用户表中有数百万条数据.....
我执行此迁移以更改列 my_data 的默认值...
Schema::table('users', function (Blueprint $table) {
$table->string('my_data')->default(0)->change();
});
我在query_log.txt看到,php artisan migrate会执行这个查询
ALTER TABLE gn_users CHANGE my_data my_data VARCHAR(255) DEFAULT '0' NOT NULL
这很慢,将近1小时仍未完成迁移...
.
.
然后,我停止迁移,直接运行原始查询(我使用ALTER ... ALTER 而不是ALTER ... CHANGE)
ALTER TABLE gn_users ALTER my_data SET DEFAULT '0'
而且这个查询只在几秒钟内完成......
.
.
所以,我的问题是,如何确保 Laravel 运行 ALTER ... ALTER 而不是 ALTER ... CHANGE ?
【问题讨论】: