FlyWay迁移策略
FlyWay migration strategy
目前在我们使用 FlyWay 的一个项目中,我们有多个环境,例如:dev(开发人员本地),QA 人员的几个应用程序实例,暂存......我们有这样的工作流程任务: 进行中 -> 代码审查 -> QA -> 合并。
我们遇到了一个问题:假设开发人员在分支 A 上工作期间提供了一个新的迁移版本,比如说 V331,同时 QA 人员正在对另一个分支,假设 B,在 QA 环境中。 qa环境可能已经有v331版本了,因为几个开发者可能在不同的时间在不同的分支上创建了相同的版本号……更多关于qa在分支之间切换非常频繁,这就是qa数据库变得混乱的原因,尤其是table schema_version,它告诉我们我们已经手动删除损坏的架构版本,解决旧的迁移版本问题,然后再次在环境中启动迁移过程。你如何处理多种环境和飞行路线?有最佳实践吗?
有一个方法,不知道合不合你的需要
您可以配置 flyway 忽略版本控制的增量值,使用 outOfOrder
配置字段:https://flywaydb.org/documentation/commandline/migrate
如果您开始使用问题编号命名您的版本,您将不会有重叠的版本名称,并且合并不会关心缺少序列号或版本名称低于已合并的项目。
How to use Flyway when working with feature branches
当不使用问题跟踪器时,您可以想出其他办法,在新分支获得更高的颠覆或类似的东西。
目前在我们使用 FlyWay 的一个项目中,我们有多个环境,例如:dev(开发人员本地),QA 人员的几个应用程序实例,暂存......我们有这样的工作流程任务: 进行中 -> 代码审查 -> QA -> 合并。
我们遇到了一个问题:假设开发人员在分支 A 上工作期间提供了一个新的迁移版本,比如说 V331,同时 QA 人员正在对另一个分支,假设 B,在 QA 环境中。 qa环境可能已经有v331版本了,因为几个开发者可能在不同的时间在不同的分支上创建了相同的版本号……更多关于qa在分支之间切换非常频繁,这就是qa数据库变得混乱的原因,尤其是table schema_version,它告诉我们我们已经手动删除损坏的架构版本,解决旧的迁移版本问题,然后再次在环境中启动迁移过程。你如何处理多种环境和飞行路线?有最佳实践吗?
有一个方法,不知道合不合你的需要
您可以配置 flyway 忽略版本控制的增量值,使用 outOfOrder
配置字段:https://flywaydb.org/documentation/commandline/migrate
如果您开始使用问题编号命名您的版本,您将不会有重叠的版本名称,并且合并不会关心缺少序列号或版本名称低于已合并的项目。 How to use Flyway when working with feature branches
当不使用问题跟踪器时,您可以想出其他办法,在新分支获得更高的颠覆或类似的东西。