可以在 migrate:reset 之后修改迁移吗?

Okay to amend migrations after migrate:reset?

我有一个站点正在开发中,因此数据库结构仍在不断变化。如果我 运行 migrate:reset,这将回滚所有迁移。因此,我是否可以修改迁移——即修改模式闭包和删除迁移文件等——而不是添加更多迁移来修改数据库结构?例如,客户要求某些需要 table 的功能,后来他决定不想要它,所以我在我的迁移中有一个 table 我永远不会使用。理想情况下,我不希望它出现在我的迁移中。

如果您的项目中不再需要 table,您当然可以删除它的迁移文件。

当您 运行 php artisan migrate:reset Laravel 回滚所有迁移时。但是如果你删除你的迁移文件而不回滚它,Laravel 会尝试找到那个迁移文件来回滚它,当它找不到那个文件时;它会抛出异常。

在这种情况下,您可以使用 php artisan migrate:fresh 使用 migrate:fresh Laravel 不会尝试查找和回滚迁移,它只是删除所有 table 并开始一个新的 migrations table 并迁移每个文件从头开始。

所以;如果您对迁移文件进行了任何更改,并且如果您在开发环境中并且没有任何影响:您可以对迁移文件做任何您想做的事情,并且 运行 php artisan migrate:fresh 删除每个 table 并再次迁移它们。

请在此处查看:https://laravel.com/docs/8.x/migrations#rolling-back-migrations