2017-12-27 106 views
0

我删除了所有的数据库表,但我的错误是:我不能迁移表再次

table.questions存在

,所以我不能迁移它们,它依赖于别的东西以及?

+0

清空数据库,并尝试'作曲家dumpautoload'然后尝试再次迁移 –

回答

1

我发现了它,我在开机的问题表了中间件,并将此:

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

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

确保你真的删除了包括migrations表在内的所有表格。

通常,当要恢复所有迁移你应该运行:

php artisan migrate:reset 

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

php artisan migrate:fresh 

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

php artisan migrate:rollback 

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

+0

我再次 –

+1

@amini有错误.swallow您确定您的应用程序正在使用您认为正在使用的数据库吗?运行'php artisan migrate:status'来查看运行的是什么样的迁移,看看'.env'来查看数据库名称并运行'php artisan config:clear'来确保没有旧的数据库连接被缓存。 –

+0

是的,我相信 –

2

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

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

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

或者你也可以手动重新创建一个数据库,并运行php artisan migrate命令。

+0

不,我没有它在数据库中,我也删除了我的数据库并创建它再次 –

2

您可以运行:

php artisan migrate:refresh 

回滚所有表(包括迁移表),并再次重新一切。

+0

我再次有这个错误 –

+0

@ amini.swallow做了这个答案帮助你吗? –

+0

不,我在这里回答这是因为AuthServiceProvider.php。我写了一个中间件。请在这里检查我的答案。 –