手动删除模型,php artisan migrate给出和错误
So I just started playing around with Laravel 5.1. I created a model with migration named "teachers". Then I manually deleted the model file which was Teachers.php which contained the Teachers class. Now when I try to roll back I get the following error:
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'CreateTeachersTable' not found
I tried composer dump-autoload
and php artisan migrate:refresh
and php artisan migrate:reset
but it keeps on giving above error. I just want to start afresh. How to reset everything?
所以我开始玩Laravel 5.1。 我创建了一个名为“教师”的迁移模型。 然后我手动删除了包含Teachers类的Teachers.php模型文件。 现在当我尝试回滚时,我收到以下错误: p>
[Symfony \ Component \ Debug \ Exception \ FatalErrorException]
找不到类'CreateTeachersTable'
代码> pre>
我尝试了 composer dump-autoload code>和 php artisan migrate:refresh code>和 php artisan migrate:reset 代码>但它继续给出上述错误。 我只是想重新开始。 如何重置所有内容? p>
div>
Ok. So I found the solution. So if you accidentally delete any model file or migrations file without using php artisan migrate:rollback
the above command and any migrate command will cause problems. SO what you need to do is, delete all the tables manually from the database. I was using sqlite database and I deleted migrations, users, questions, teachers, password_resets all the tables that were generated by migrate command. Then I ran composer dumpautoload
. Then I ran php artisan migrate
command again after making changes to the files and everything was back to normal.
So basically deleting migrations table solves the issue.
First, check if that class is still referenced somewhere by doing a full search within your project folder, and then if it is not, try running:
php artisan clear-compiled
When you refresh
your migrations, Laravel looks at your migrations
table and uses the values in there to load the migrations files to rollback.
Since you manually deleted the migration file, it was never removed from your migrations
table. You'll have to manually delete the row in that table for the given migration file.