【发布时间】:2021-07-16 05:41:04
【问题描述】:
我有一个 java 应用程序,我部署在各种平台上(使用 ansible)。
这个应用程序使用一个数据库,它有时需要获取架构更新,我使用 flyway 执行和记录/版本(作为软件依赖项)。
我现在面临更新所有平台上的数据的需要,但根据平台的不同使用不同的值。这不是架构更新,但仍然是构成我的应用程序主要结构的数据(它连接到的其他应用程序的列表),因此我希望它以类似于 flyway 的方式进行版本控制。
起初我想我应该在我的 ansible 配置中输入不同的数据,这似乎是有道理的,因为 ansible 知道各种平台。然后我认为这些信息会以某种方式传递给flyway,以便它执行所需的更新。 但是,如果使用“版本化迁移”来处理,我最终可能会遇到版本冲突,因为一个环境需要更新,而另一个不需要更新(通用版本控制与环境版本控制)。
flyway FAQ 稍微提到了这个问题,可以设置flyway.locations 属性,或者我可以使用ansible 设置的flyway 占位符?
我在正确的轨道上吗?还是我不应该完全使用flyway(它是要与DML一起使用,还是应该为DDL保留)?
【问题讨论】:
标签: java deployment ansible database-migration flyway