删除表后如何重新迁移laravel迁移

时间:2018-06-13 12:40:00

标签: php laravel

在我手动删除mysql中的表后,运行命令:

php artisan migrate

我得到了这个:

Nothing to migrate.

它只在第一次工作,如何在laravel中重新运行迁移?

6 个答案:

答案 0 :(得分:5)

Laravel记录了已经运行的迁移。您需要转到迁移表并删除迁移记录。 Laravel这样做是为了知道哪些迁移已经运行,以便它不会再次运行它们,因此在回滚的情况下,它知道已经完成的最后一批迁移。

这可能有助于https://laravel.com/docs/5.6/migrations

答案 1 :(得分:2)

如果您手动删除表,则也必须从“迁移”表中删除记录。当技工迁移检查您的迁移是否不在“迁移”表中时,这种方式将迁移未注册的迁移。

答案 2 :(得分:2)

您可以简单地做到:php artisan migration:新鲜来重新迁移您的迁移,如果您有种子数据,那么您就可以简单地做到:php artisan migration:新鲜-种子

答案 3 :(得分:0)

尝试composer dump-autoloadphp artisan config:cache

如果不能正常工作,请尝试php artisan migrate:refresh

或者删除数据库中的迁移表。

答案 4 :(得分:0)

如果您手动删除表,这是预期的行为,因为已经部署了先前的批量迁移作业(在迁移表中)。

  • 如果您想重新迁移所有数据库,只需执行以下操作:php artisan migrate:refresh

  • 如果您希望确保数据库在最新更改时保持干净,则可以删除整个数据库表并再次执行php artisan migrate。此外,如果您有任何播种机,可以尝试php artisan migrate --seed

答案 5 :(得分:0)

你能做的最好的事情是从数据库中删除表,然后重命名迁移的最后一个数字,然后做

php artisan migrate

这不会重新创建所有表。