通过 Spring Boot 仅在 Release 内(仅最后更新文件)进行可重复迁移
Repeatable migrations only within a Release (last update file only) through Spring Boot
我们希望以允许重复上次迁移的方式使用 Flyway,只要最后一个 schemaVersion 仍未发布,因此不仅会重新执行最后一个数据库更改文件,而且如果可能的话,在清除最后一个之后变化(所以这不完全是我推断的可重复迁移概念)。
有什么解决方案或好主意可以解决这个需求吗?我们正在使用 Spring Boot 来配置 Flyway 进程。
编辑: 到目前为止(感谢 Axel)我发现了这两个选择:
0.Increment 任何更改的架构,即使是在版本中(避免这是问题的动机)
1.Use spring.flyway.cleanOnValidationError 属性 在发布之前的任何 pipeline/deploy 中设置为 true 这意味着如果我们在之前更改版本控制脚本到快照一,我们在发布管道中部署时会意识到
2.Work 具有可重复迁移 (R__) 并进行一些修改以在发布管道期间将名称更改为版本化迁移问题:
CREATES 和 DROPS 都可以,但是 ALTERS 需要 PL/SQL 用于 IF
存在部分
3.Change db 迁移提供程序到支持降级的提供程序(同样的 flyway 文档说这通常是一个有问题的想法)
如果没有人找到更好的解决方案,我会接受 Axel 的回答
将 flyway.cleanOnValidationError
设置为 true
以获得您想要的(或非常接近):在开发中快速迭代,在迁移更改时自动重新创建模式。
我们希望以允许重复上次迁移的方式使用 Flyway,只要最后一个 schemaVersion 仍未发布,因此不仅会重新执行最后一个数据库更改文件,而且如果可能的话,在清除最后一个之后变化(所以这不完全是我推断的可重复迁移概念)。
有什么解决方案或好主意可以解决这个需求吗?我们正在使用 Spring Boot 来配置 Flyway 进程。
编辑: 到目前为止(感谢 Axel)我发现了这两个选择:
0.Increment 任何更改的架构,即使是在版本中(避免这是问题的动机)
1.Use spring.flyway.cleanOnValidationError 属性 在发布之前的任何 pipeline/deploy 中设置为 true 这意味着如果我们在之前更改版本控制脚本到快照一,我们在发布管道中部署时会意识到
2.Work 具有可重复迁移 (R__) 并进行一些修改以在发布管道期间将名称更改为版本化迁移问题: CREATES 和 DROPS 都可以,但是 ALTERS 需要 PL/SQL 用于 IF 存在部分
3.Change db 迁移提供程序到支持降级的提供程序(同样的 flyway 文档说这通常是一个有问题的想法)
如果没有人找到更好的解决方案,我会接受 Axel 的回答
将 flyway.cleanOnValidationError
设置为 true
以获得您想要的(或非常接近):在开发中快速迭代,在迁移更改时自动重新创建模式。