【问题标题】:Spring boot - How to to disable Flyway per datasourceSpring boot - 如何禁用每个数据源的 Flyway
【发布时间】:2023-03-13 18:40:01
【问题描述】:

在 Spring/Flyway 配置方面需要帮助。 Spring Boot Kotlin 应用有 2 个数据源:

    @Primary
    @Bean("dataSource")
    fun dataSource(): DataSource {
        return DataSourceBuilder
            .create()
            .build()
    }

    @Bean("legacyDataSource")
    fun legacyDataSource(): DataSource {
        val dataSource = OracleDataSource()
        // todo: configure

        return dataSource
    }

我只想将 Flyway 用于 dataSource,而不是 legacyDataSource。通常 Flyway 应该只为主 bean 注入flywayInitializer,但有时它也可以应用于legacyDataSource(例如,当当前配置文件中禁用 dataSource 时)。 Flyway 是否可以选择为每个数据源 bean 禁用它? application.properties 中的键提示会非常好;)

【问题讨论】:

    标签: spring-boot flyway


    【解决方案1】:

    来自doc

    您可以通过在外部属性中设置 spring.flyway.[url,user,password] 来使用 Flyway 的原生 DataSource。设置 spring.flyway.url 或 spring.flyway.user 足以让 Flyway 使用自己的 DataSource。如果这三个属性中的任何一个都没有设置,则将使用其等效 spring.datasource 属性的值。

    所以你应该在yaml中填写以上三个属性,这样只会迁移指定的数据源。

    【讨论】:

    • 确实,这就是我正在寻找的解决方案,谢谢!
    猜你喜欢
    • 2018-09-23
    • 2017-11-06
    • 2016-10-22
    • 2019-01-30
    • 2021-09-22
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    相关资源
    最近更新 更多