手动删除模型,php artisan migrate 给出错误
Deleted a model manually, php artisan migrate gives and error
所以我刚开始玩 Laravel 5.1。我创建了一个名为 "teachers" 的迁移模型。然后我手动删除了 Teachers.php 的模型文件,其中包含教师 class。现在,当我尝试回滚时,出现以下错误:
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'CreateTeachersTable' not found
我尝试了 composer dump-autoload
和 php artisan migrate:refresh
以及 php artisan migrate:reset
但它一直出现上述错误。我只想重新开始。如何重置一切?
首先,通过在您的项目文件夹中进行全面搜索来检查 class 是否仍然在某处被引用,然后如果没有,请尝试 运行:
php artisan clear-compiled
好的。所以我找到了解决方案。因此,如果您不小心删除了任何模型文件或迁移文件而没有使用 php artisan migrate:rollback
上述命令和任何迁移命令都会导致问题。所以你需要做的是,从数据库中手动删除所有 tables。我正在使用 sqlite 数据库,我删除了迁移、用户、问题、教师、password_resets 所有由 migrate 命令生成的 table。那我运行composer dumpautoload
。然后我 运行 php artisan migrate
在对文件进行更改后再次命令,一切都恢复正常。
所以基本上删除迁移 table 解决了这个问题。
当您 refresh
迁移时,Laravel 查看您的 migrations
table 并使用其中的值加载迁移文件以回滚。
由于您手动删除了迁移文件,因此它从未从您的 migrations
table 中删除。对于给定的迁移文件,您必须手动删除 table 中的行。
所以我刚开始玩 Laravel 5.1。我创建了一个名为 "teachers" 的迁移模型。然后我手动删除了 Teachers.php 的模型文件,其中包含教师 class。现在,当我尝试回滚时,出现以下错误:
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'CreateTeachersTable' not found
我尝试了 composer dump-autoload
和 php artisan migrate:refresh
以及 php artisan migrate:reset
但它一直出现上述错误。我只想重新开始。如何重置一切?
首先,通过在您的项目文件夹中进行全面搜索来检查 class 是否仍然在某处被引用,然后如果没有,请尝试 运行:
php artisan clear-compiled
好的。所以我找到了解决方案。因此,如果您不小心删除了任何模型文件或迁移文件而没有使用 php artisan migrate:rollback
上述命令和任何迁移命令都会导致问题。所以你需要做的是,从数据库中手动删除所有 tables。我正在使用 sqlite 数据库,我删除了迁移、用户、问题、教师、password_resets 所有由 migrate 命令生成的 table。那我运行composer dumpautoload
。然后我 运行 php artisan migrate
在对文件进行更改后再次命令,一切都恢复正常。
所以基本上删除迁移 table 解决了这个问题。
当您 refresh
迁移时,Laravel 查看您的 migrations
table 并使用其中的值加载迁移文件以回滚。
由于您手动删除了迁移文件,因此它从未从您的 migrations
table 中删除。对于给定的迁移文件,您必须手动删除 table 中的行。