Php 我需要清除什么样的Laravel缓存才能删除丢失迁移文件的错误?

Php 我需要清除什么样的Laravel缓存才能删除丢失迁移文件的错误?,php,laravel,database-migration,laravel-5.2,laravel-artisan,Php,Laravel,Database Migration,Laravel 5.2,Laravel Artisan,我已经在我的应用程序中进行了几次表迁移。各表如下: 人 技巧 媒体 注释 人员与其他每个表之间存在一对多关系 // The people table definition Schema::create('people', function (Blueprint $table) { $table->uuid('id'); $table->primary('id'); ... $table->timestamps(); }); // the

我已经在我的应用程序中进行了几次表迁移。各表如下:

  • 技巧
  • 媒体
  • 注释
人员
与其他每个表之间存在一对多关系

// 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
创建迁移时,我意外地在
人员
迁移之前创建了
技能
迁移文件

这导致了一个问题,因为当您运行
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\u 02\u 24\u 174227\u create\u people\u table.php
重命名为
2016\u 02\u 24\u 170000\u create\u people\u table.php

此修复程序有效,但现在每当我
php artisan migrate:refresh
my tables时,我都会收到一个错误消息,表示artisan仍在查找老人文件:

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


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

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

composer dump-autoload

回滚迁移并检查

migrate:rollback

facepalm我忘了迁移是composer类映射的一部分。谢谢你的帮助。我一有空就给你支票。你回答得太快了,时间限制还没有到:PI也有同样的问题,这对我帮助很大,谢谢!这对我不起作用
php artisan migrate
仍在发出关于另一个代码分支上存在的迁移的警告。