代码之家  ›  专栏  ›  技术社区  ›  parastoo

我无法再次迁移表

  •  0
  • parastoo  · 技术社区  · 8 年前

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

    桌子存在问题

    所以我不能迁移它们,这是否也取决于其他因素?

    4 回复  |  直到 8 年前
        1
  •  7
  •   Sapnesh Naik    8 年前

    您可以运行:

    php artisan migrate:refresh
    

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

        2
  •  3
  •   Marcin Nabiałek    8 年前

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

    确保确实删除了所有表,包括 migrations 桌子

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

    php artisan migrate:reset
    

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

    php artisan migrate:fresh
    

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

    php artisan migrate:rollback
    

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

        3
  •  2
  •   Alexey Mezenin    8 年前

    您得到此错误是因为您在DB中已经有此表。你需要放一张桌子进去 down() 每次迁移和使用的方法 php artisan migrate:rollback 用于删除最后一批已执行迁移的命令。

    在5.5中,您还可以使用 php artisan migrate:fresh 如果不在 向下() 方法

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

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

        4
  •  1
  •   parastoo    8 年前

    我找到了它,在boot for question table中有一个中间件,并添加了以下内容:

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