我无法再次迁移表
I can not migrate tables again
我删除了数据库中的所有表,但我的错误是:
table.questions exists
所以我无法迁移它们,是否也取决于其他因素?
如果你真的从数据库中删除所有 table 是不可能的。
确保您确实删除了所有 table,包括 migrations
table。
通常当你想恢复所有迁移时,你应该 运行:
php artisan migrate:reset
如果你还没有这样做假设你已经 运行宁 Laravel 5.5 你可以 运行:
php artisan migrate:fresh
我建议您阅读整个 Migrations documentation 以了解它们的工作原理以及您应该如何创建它们。事实上你不应该手动删除 tables 而只是 运行:
php artisan migrate:rollback
回滚之前的迁移 运行 或者正如我已经说过的,您可以 运行 一个前面提到的命令来回滚或回滚,然后 运行 再次您的迁移。
你得到这个错误是因为你已经在数据库中有这个table。您需要在每个迁移的 down()
方法中删除一个 table 并使用 php artisan migrate:rollback
命令删除最后一批执行的迁移。
在 5.5 中,如果您不在 down()
方法中删除 table,您也可以使用 php artisan migrate:fresh
。
https://laravel.com/docs/5.5/migrations#rolling-back-migrations
或者您可以手动重新创建数据库和 运行 php artisan migrate
命令。
你可以运行:
php artisan migrate:refresh
回滚所有 table(包括迁移 table)并重新创建所有内容。
我找到了,我在引导中有一个针对问题 table 的中间件并添加了这个:
if(\Schema::hasTable('questions')) {
....
}
我删除了数据库中的所有表,但我的错误是:
table.questions exists
所以我无法迁移它们,是否也取决于其他因素?
如果你真的从数据库中删除所有 table 是不可能的。
确保您确实删除了所有 table,包括 migrations
table。
通常当你想恢复所有迁移时,你应该 运行:
php artisan migrate:reset
如果你还没有这样做假设你已经 运行宁 Laravel 5.5 你可以 运行:
php artisan migrate:fresh
我建议您阅读整个 Migrations documentation 以了解它们的工作原理以及您应该如何创建它们。事实上你不应该手动删除 tables 而只是 运行:
php artisan migrate:rollback
回滚之前的迁移 运行 或者正如我已经说过的,您可以 运行 一个前面提到的命令来回滚或回滚,然后 运行 再次您的迁移。
你得到这个错误是因为你已经在数据库中有这个table。您需要在每个迁移的 down()
方法中删除一个 table 并使用 php artisan migrate:rollback
命令删除最后一批执行的迁移。
在 5.5 中,如果您不在 down()
方法中删除 table,您也可以使用 php artisan migrate:fresh
。
https://laravel.com/docs/5.5/migrations#rolling-back-migrations
或者您可以手动重新创建数据库和 运行 php artisan migrate
命令。
你可以运行:
php artisan migrate:refresh
回滚所有 table(包括迁移 table)并重新创建所有内容。
我找到了,我在引导中有一个针对问题 table 的中间件并添加了这个:
if(\Schema::hasTable('questions')) {
....
}