2017-04-06 89 views
0

我正在使用PHP symfony框架进行数据库迁移,并且我注意到有很多文件,并且当我构建项目时以及每次执行许多文件(迁移)时。很多数据库迁移文件

管理迁移的最佳实践是什么?我可以删除它们并只创建一个数据库转储文件,用于数据库启动吗?

+0

你应该为你的开发数据库使用灯具。 – COil

回答

0

我假设您使用Doctrine Migrations来创建这些文件。在dev上,您始终可以使用doctrine:schema:update命令重新生成数据库。 设置新实例时,您还可以使用doctrine:schema:create命令,该命令还会为您创建最新的表定义。

这给我们带来了你的问题;你需要保留所有的迁移吗?只要您知道迁移已在过时的实例上执行,您可以安全地归档(我的首选选项)或删除它们,因为它们将永远不会再被调用。

+0

是的,我正在使用Doctrine迁移,并在部署到生产之前构建项目时运行它们。我不应该使用迁移来构建项目并更好地使用原则:schema:create? – Emptyhand

+0

没有模式:创建仅用于开发目的,因为它不考虑您的数据。使用migrations执行部署,为dev/test创建。 –

0

我宁愿使用生产上的迁移而不是教条:schema:update,因为在更新过程中可能会遇到一些问题。海事组织总是更好的选择,密切注意数据库的情况。

在开发环境中,您可以轻松使用doctrine:schema:update命令,但是您应该在生产环境中使用迁移。在某些情况下,命令可能会阻止迁移(它发生在我身上的几次)。

+0

好的,但是如果你有很多人,你如何管理你的迁移?另外你如何建立你的项目(如果你建立在CI/CD上)?你使用迁移或模式创建? – Emptyhand

+0

你必须做到这一点:)最好减少迁移次数(不是单独为每个新的字段),而是一次大的迁移。完成功能后,可以将多个迁移合并为一个,然后再将其推送到主分支。 – kabanek