Symfony Web应用程序本身如何检测未应用的学说迁移?

时间:2019-02-28 11:33:39

标签: symfony doctrine doctrine-migrations

处理学说迁移的正常方法是通过标准命令-在开发过程中,手动运行命令,例如运行差异并应用迁移,而部署通常涉及通过相同的方法自动应用它们。有时在团队中处理本地实例时,会有新的迁移,但是我是从版本控制中更新源代码,而不是进行部署,因此我需要手动应用新的迁移,并且我需要知道去做!一种改进可能是在渲染的网页上显示警告,指出迁移不同步,需要采取措施。

有没有一种方法可以直接用PHP / Symfony代码访问Migrations API,这样我就可以检测到已提交和已应用的迁移之间的不匹配?我还没有找到任何相关文档。我对代码有初步的了解,并且似乎严重偏向了Commands(足够合理)。

1 个答案:

答案 0 :(得分:0)

首先,从版本控制中更新源代码也是一个部署,应用Doctrine Migrations应该是其中的一部分。您应该创建一个部署过程中需要执行的所有步骤的清单,包括回滚。根据应用程序的复杂性,很多事情可能会出错。

要回答您的问题,您可以在代码中使用Process组件执行diff迁移,并解析输出以确定是否有要应用的迁移。