在我手动删除mysql中的表后,运行命令:
php artisan migrate
我得到了这个:
Nothing to migrate.
它只在第一次工作,如何在laravel中重新运行迁移?
答案 0 :(得分:5)
Laravel记录了已经运行的迁移。您需要转到迁移表并删除迁移记录。 Laravel这样做是为了知道哪些迁移已经运行,以便它不会再次运行它们,因此在回滚的情况下,它知道已经完成的最后一批迁移。
答案 1 :(得分:2)
如果您手动删除表,则也必须从“迁移”表中删除记录。当技工迁移检查您的迁移是否不在“迁移”表中时,这种方式将迁移未注册的迁移。
答案 2 :(得分:2)
您可以简单地做到:php artisan migration:新鲜来重新迁移您的迁移,如果您有种子数据,那么您就可以简单地做到:php artisan migration:新鲜-种子
答案 3 :(得分:0)
尝试composer dump-autoload
和php 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
这不会重新创建所有表。