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
仍在发出关于另一个代码分支上存在的迁移的警告。