2015-10-21 19:18
浏览 69

手动删除模型,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:

  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?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • doupeng8419
    doupeng8419 2015-10-21 19:41

    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.

    点赞 评论
  • doutonghang2761
    doutonghang2761 2015-10-21 19:22

    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

    点赞 评论
  • dtt83024
    dtt83024 2015-10-21 20:12

    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.

    点赞 评论