我需要清除什么 Laravel 缓存才能消除有关丢失迁移文件的错误?

What Laravel cache do I need to clear to remove error about missing migration file?

我在我的应用程序中对表格进行了几次迁移。这些表格是:

people 与其他每个表之间存在一对多关系。

// The people table definition

Schema::create('people', function (Blueprint $table) {
    $table->uuid('id');
    $table->primary('id');
    ...
    $table->timestamps();
});


// the skill table definition with the foreign key constraint referencing people

Schema::create('skills', function (Blueprint $table) {
    $table->uuid('id');
    $table->primary('id');
    $table->uuid('person_id');
    $table->foreign('person_id')
            ->references('id')->on('people')
            ->onDelete('cascade');
    ...
    $table->timestamps();
});

当我通过 artisan 创建迁移时,我不小心在 people 迁移之前创建了 skills 迁移文件。

这导致了一个问题,因为当您 运行 php artisan migrate 时,文件按时间戳顺序触发,如果在定义外键约束之前未建立主键,则会出现错误,例如

文件:

2016_02_24_174227_create_people_table.php

将在 文件后 触发:

2016_02_24_174221_create_skills_table.php

因为 skills 文件的名称中有一个较小的时间戳前缀(17:42:21 在 17:42:27 之前)。这意味着 skills 中的外键约束正在寻找 people 中尚不存在的主键。

为了解决这个问题,我将文件 2016_02_24_174227_create_people_table.php 重命名为 2016_02_24_170000_create_people_table.php

此修复有效,但现在每当我 php artisan migrate:refresh 我的表时,我都会收到一条错误消息,指出 artisan 仍在以某种方式寻找旧人文件:

我尝试使用 php artisan cache:clear 清除应用程序缓存,但仍然出现错误。

是否需要清除特定缓存以删除对原始迁移文件的引用?

这不是缓存问题。您只需要再次运行作曲:

composer dump-autoload

回滚迁移并检查

migrate:rollback