首页 > 解决方案 > Spring Boot 获取 Flyway 配置

问题描述

我在 spring boot 上运行 flyway,我需要从 spring boot 代码中获取基线版本。我在 application.yml 文件中设置的基线版本如下

  flyway:
    enabled: false
    baseline-version: 3

在我的春季启动代码中,我正在初始化我的飞行路线,如下所示

@Override
public void run(String... args) {

    Flyway flywaysftp = Flyway.configure()
            .locations("classpath:db/migration/sftp")
            .baselineVersion(?)
            .dataSource(dataSourceConfigSftp.dataSourceSftp().getJdbcUrl(), dataSourceConfigSftp.dataSourceSftp().getUsername(), dataSourceConfigSftp.dataSourceSftp().getPassword()).load();
}

我需要能够将 flywaysftp 的基线版本设置为我的 application.yml 中的基线版本。

有没有办法使用 flyway 库从我的 application.yml 中检索基线版本?

标签: spring-bootflyway

解决方案


您可以像这样使用 Spring @Value:

@Component
public class MyClass{

  @Value("${flyway.baseline-version}")
  private String flywayBaselineVersion;

 ....
 ....

public void run(String... args) {

    Flyway flywaysftp = Flyway.configure()
            .locations("classpath:db/migration/sftp")
            .baselineVersion(flywayBaselineVersion)
            .dataSource(dataSourceConfigSftp.dataSourceSftp().getJdbcUrl(), dataSourceConfigSftp.dataSourceSftp().getUsername(), dataSourceConfigSftp.dataSourceSftp().getPassword()).load();
}
}

推荐阅读