我们的Laravel应用程序中有很多迁移。现在,我们要进行一些更改,以使某些表过时,而实际上是要在某些表中重命名某些列。
执行此更改的最佳实践是什么?
我肯定两种方法都有优点和缺点。
答案 0 :(得分:3)
我个人认为第一种方法是最佳实践,这就是原因。我们知道,您在迁移时将迁移存储在迁移表中,这就是为什么它们仅迁移一次的原因。现在,如果您更新一个并尝试迁移,您将一无所获,因为此迁移已完成。至于删除迁移,实际上不建议这样做,因为您可能最终要更改服务器或需要新的数据库,这可能会导致问题。
保持迁移流程非常重要。即使这意味着添加和删除表。当然,这会使您的迁移文件夹更大,更笨拙,但这是安全的选择。您可以通过适当的项目计划并尽量减少迁移次数来避免这种情况。
答案 1 :(得分:3)
要进行这些更改,请创建一个新迁移,该迁移将删除旧表并重命名需要重命名的字段。
对于第2点,可以在本地开发时更新旧迁移。并且仅(如果尚未在生产服务器上运行迁移)。
通常在项目的初始开发阶段就可以接受。
在生产服务器上使用修改后的迁移文件运行php artisan migrate
不会更新数据库(因为数据库日志执行了迁移)。
如@ khaldoun-nd所述,最好保持迁移的流程,仅在需要时创建它们,并在知道预期的代码运行良好后进行部署。