我无法再次迁移表

时间:2017-12-27 12:02:44

标签: laravel laravel-5 artisan migrate laravel-migrations

我删除了数据库中的所有表,但我的错误是:

  

table.questions存在

所以我无法迁移它们,它还取决于其他东西吗?

4 个答案:

答案 0 :(得分:3)

您可以运行:

php artisan migrate:refresh

回滚所有表(包括迁移表)并再次重新创建所有表。

答案 1 :(得分:2)

如果您真的从数据库中删除了所有表,那是不可能的。

确保您确实删除了所有表格,包括migrations表格。

通常,当您想恢复所有迁移时,您应该运行:

php artisan migrate:reset

如果你没有这样做,假设你正在运行Laravel 5.5,你可以运行:

php artisan migrate:fresh

我建议你阅读整个Migrations documentation以了解它们的工作原理以及如何创建它们。实际上,您不应手动删除表,只需运行:

php artisan migrate:rollback

回滚以前运行的迁移,或者我已经说过你可以运行一个前面提到的命令来回滚或回滚并再次运行你的迁移。

答案 2 :(得分:2)

您收到此错误,因为您已在DB中拥有此表。您需要在每次迁移的down()方法中删除一个表,并使用php artisan migrate:rollback命令删除最后一批执行的迁移。

在5.5中,如果不删除php artisan migrate:fresh方法中的表格,也可以使用down()

https://laravel.com/docs/5.5/migrations#rolling-back-migrations

或者您可以手动重新创建数据库并运行php artisan migrate命令。

答案 3 :(得分:1)

我找到了它,我在启动时有一个问题表的中间件,并添加了这个:

   if(\Schema::hasTable('questions')) {
       ....
     }