如何在删除表后重新迁移 Laravel 迁移



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

php artisan migrate

我明白这个:

Nothing to migrate.

它仅在第一次有效,如何在 Laravel 中重新运行迁移?

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

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

尝试composer dump-autoloadphp artisan config:cache

如果不工作也尝试php artisan migrate:refresh.

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

您可以简单地执行以下操作: php artisan migrate: fresh 重新迁移您的迁移,如果您有播种机数据,那么您只需执行以下操作: PHP Artisan 迁移: 新鲜 -- 种子

如果手动删除表,这是预期行为,因为以前的批处理迁移作业已部署(在迁移表中(。

  • 如果要重新迁移所有数据库,只需执行:php artisan migrate:refresh

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

如果您手动删除表,也必须从"迁移"表中删除该记录。这样,当工匠迁移检查您的迁移是否不在"迁移"表中时,将迁移未注册的迁移。

您可以做的最好的事情是从数据库中删除表,然后重命名迁移最后一个数字并执行

php artisan migrate

这不会重新创建所有表。

最新更新