【问题标题】:How to configure Flyway in Spring Boot in code如何在代码中在 Spring Boot 中配置 Flyway
【发布时间】:2021-06-14 17:14:44
【问题描述】:
目前我有 Spring + Flyway + Gradle 设置。一切正常。 Spring 会自动运行 Flyway 迁移。现在我们需要在代码中为 Flyway 设置 2 个标志,以允许乱序迁移,并忽略丢失的迁移。我可以从文档中看到为此存在一个类 (FlywayProperties),但我找不到在我的代码中使用它的方法。
我是否需要创建一些 bean 来改变它或者我该怎么做?
【问题讨论】:
标签:
java
spring
spring-boot
flyway
【解决方案1】:
这些属性可以直接在Spring Boot中配置application.properties或application.yml,如下:
application.properties:
spring.flyway.ignore-missing-migrations = true
spring.flyway.out-of-order = true
application.yml:
spring:
flyway:
ignore-missing-migrations: true
out-of-order: true
可在Spring Boot documentation 中找到受支持的 Flyway 属性的完整列表。
【解决方案2】:
当然还有其他可能更简单的方法,但我可以通过 SpringApplicationBuilder 提供一个 sn-p 我们如何做到这一点
SpringApplicationBuilder builder = new SpringApplicationBuilder()
Map<String, Object> flywayConfig = new HashMap<>();
flywayConfig.put("spring.flyway.enabled", "true");
flywayConfig.put("spring.flyway.locations", "classpath:flyway/oracle/migration");
builder.properties(flywayConfig);
点击此处直接配置 Flyway 对象:flyway outOfOrder is not working as expected