Laravel - 已更改迁移文件 name/class,migrate:reset 仍在寻找旧的 class
Laravel - Changed Migration file name/class, migrate:reset still looks for old class
我更改了我的迁移文件名,更新了 class 名称,运行 'composer dump-autoload',然后是 运行 'php artisan migrate:reset'。
当我 运行 我得到一个错误:
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'OldClassName' not found
当我在整个项目中搜索这个 class 名称时,我发现它只在错误日志中提到过。如果我进入 'autoload_classmap.php',带有我的 class 名称和迁移文件名的行是正确的(我复制并粘贴它们只是为了确保)。
在谷歌搜索时,人们建议 运行 我已经拥有的其他一些命令:
php artisan clear-cache
Vagrant reload
composer self-update
composer update
我还应该如何解决这个问题?
找到问题。
问题是我 运行 迁移,所以我的旧 table 是使用我的旧 table name/class/etc 创建的。然后我更改了迁移文件name/class并尝试php artisan migrate:refresh
。当你执行 refresh
时,它会回滚你所有的 table,然后重新迁移它们,所以当它试图回滚我的旧 table 时,它没有找到它(因为我改变了名字已经),它吓坏了。要解决此问题,我必须将其重命名为原始名称,运行 php artisan migrate:rollback
(所有 table 已删除)然后 运行 php artisan migrate:refresh
重新加载所有table 包括我的 table 和新名字。
我 运行 遇到了同样的问题,并通过进入数据库迁移 table 并删除旧迁移的名称来解决它。
上述答案的问题是我不得不使用错误的名称保留迁移文件。
我更改了我的迁移文件名,更新了 class 名称,运行 'composer dump-autoload',然后是 运行 'php artisan migrate:reset'。
当我 运行 我得到一个错误:
[Symfony\Component\Debug\Exception\FatalErrorException] Class 'OldClassName' not found
当我在整个项目中搜索这个 class 名称时,我发现它只在错误日志中提到过。如果我进入 'autoload_classmap.php',带有我的 class 名称和迁移文件名的行是正确的(我复制并粘贴它们只是为了确保)。
在谷歌搜索时,人们建议 运行 我已经拥有的其他一些命令:
php artisan clear-cache
Vagrant reload
composer self-update
composer update
我还应该如何解决这个问题?
找到问题。
问题是我 运行 迁移,所以我的旧 table 是使用我的旧 table name/class/etc 创建的。然后我更改了迁移文件name/class并尝试php artisan migrate:refresh
。当你执行 refresh
时,它会回滚你所有的 table,然后重新迁移它们,所以当它试图回滚我的旧 table 时,它没有找到它(因为我改变了名字已经),它吓坏了。要解决此问题,我必须将其重命名为原始名称,运行 php artisan migrate:rollback
(所有 table 已删除)然后 运行 php artisan migrate:refresh
重新加载所有table 包括我的 table 和新名字。
我 运行 遇到了同样的问题,并通过进入数据库迁移 table 并删除旧迁移的名称来解决它。
上述答案的问题是我不得不使用错误的名称保留迁移文件。