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