【发布时间】:2020-07-17 00:01:51
【问题描述】:
我在使用 Laravel 迁移时遇到了奇怪的经历。
我已经运行了 2 次迁移,第一次不到第二次就通过了。 第二个是需要很长时间并且仍然运行了10多分钟,直到我杀死它。
这没什么大不了的,只是将 2 列添加到包含 23 个条目的表中。是的,只有 23 个条目。
查询本身非常简单:
Schema::table('customers', function (Blueprint $table) {
$table->boolean('public')->default(0);
$table->integer('user_id')->nullable();
});
有什么线索吗?我错过了什么?
是不是因为我的表里已经有 30 列了?
==== 编辑 ====
按照要求,这是通过的另一个迁移
class UpdateUsers extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->integer('shop_id')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
//
}
}
那个不工作的
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('customers', function (Blueprint $table) {
$table->boolean('public')->default(0);
$table->integer('user_id')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
}
}
【问题讨论】:
-
一个表中有三十列是一个糟糕的设计。但它仍然不应该花费 10 分钟。你能分享你的整个迁移吗?他们两个
-
我已经添加了 2 个迁移。你看到什么了吗?
-
您需要保留数据还是
artisan migrate:fresh可以选择? -
我可以在开发中运行它,但绝对不能在生产中运行。所以是的,我需要运行保存数据
-
不,30 列不是问题。你有生成的 SQL 吗?
标签: mysql laravel performance migration