Laravel - 更改了迁移文件名/类,migrate:reset仍然查找旧类

时间:2015-07-18 16:28:34

标签: php laravel laravel-migrations

我更改了我的迁移文件名,更新了类名,运行' composer dump-autoload'然后运行' php artisan migrate:reset'。

当我跑步时,我收到错误:

  

[Symfony的\元器件\调试\异常\ FatalErrorException]     Class' OldClassName'找不到

当我在整个项目中搜索此类名时,我发现它是在错误日志中提到的。如果我进入&aut; autoload_classmap.php'我的班级名称和迁移文件名称的行是正确的(我已复制并粘贴它们只是为了确保)。

谷歌搜索时,人们建议我运行一些其他命令:

php artisan clear-cache
Vagrant reload
composer self-update
composer update

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

发现了这个问题。

问题是我运行了迁移,所以我的旧表是使用我的旧表名/类/等创建的。然后我更改了迁移文件名/类并尝试php artisan migrate:refresh。当你执行refresh时,它会回滚所有表,然后重新迁移它们,所以当它试图回滚我的旧表时它没有找到它(因为我已经更改了名称)并且它吓坏了。要修复此问题,我必须将其重命名为原始名称,运行php artisan migrate:rollback(删除所有表),然后运行php artisan migrate:refresh以使用新名称重新加载包括我的表在内的所有表。

答案 1 :(得分:0)

我遇到了同样的问题并通过进入数据库迁移表并删除旧迁移的名称来解决它。

上面答案的问题是我必须使用错误的名称保留迁移文件。