仅通过Spring Boot

时间:2017-11-28 13:23:24

标签: java database spring-boot flyway

我们希望以允许重复上次迁移的方式使用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的回答

1 个答案:

答案 0 :(得分:2)

flyway.cleanOnValidationError设置为true以获得您想要的内容(或者非常接近):在开发中快速迭代,并在迁移发生变化时自动进行模式重新创建。