【发布时间】:2020-12-27 17:25:51
【问题描述】:
我有 2 个迁移,第一个具有以下名称 2019_11_06_171637_create_settings_table.php 和结构:
class CreateSettingsTable extends Migration
{
public function up()
{
Schema::create('settings', function (Blueprint $table) {
//code
});
}
//function down
}
第二个具有以下名称2020_07_08_246856_create_settings_table.php 和结构:
class CreateAnotherSettingsTable extends Migration
{
public function up()
{
Schema::create('another_settings', function (Blueprint $table) {
//code
});
}
//function down
}
当我运行 php artisan migrate 时,所有迁移都运行良好,直到 Migrating: 2020_07_08_246856_create_settings_table - 它正在尝试运行 previos 迁移 (2019_11_06_171637_create_settings_table.php) 并引发异常 Table 'settings' already exists。
这是否意味着迁移文件的名称在日期和数字之后必须是唯一的?
【问题讨论】:
-
能否将第二个文件重命名为
2020_07_08_246856_create_another_settings_table.php?如果我没记错的话,它会使用文件名来查找正确的类名。 -
@Douwe de Haan,是的,你是对的!重命名对我来说有点问题,因为我尝试合并来自两个项目的迁移,但没有其他方法,谢谢。
-
@hehoboy 我添加了一个答案,因此您可以将其标记为已接受。如果无法重命名,可以尝试将多个迁移合并到一个文件中,这样您就可以将其作为一个迁移运行(如果您不必将历史记录保留在版本控制中)。
-
@hehoboy 添加到我之前的评论中:Laravel 8(昨天发布)具有迁移压缩,可能会解决一些迁移问题 (documentation here)
标签: laravel laravel-migrations