Spring boot - 如何为每个数据源禁用 Flyway
Spring boot - How to to disable Flyway per datasource
需要有关 Spring/Flyway 配置的帮助。 Spring 启动 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
中的键提示会非常好 ;)
来自doc:
you can use Flyway’s native DataSource by setting spring.flyway.[url,user,password] in external properties. Setting either spring.flyway.url or spring.flyway.user is sufficient to cause Flyway to use its own DataSource. If any of the three properties has not be set, the value of its equivalent spring.datasource property will be used.
所以你应该在yaml中填写以上三个属性,这样只会迁移指定的数据源。
需要有关 Spring/Flyway 配置的帮助。 Spring 启动 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
中的键提示会非常好 ;)
来自doc:
you can use Flyway’s native DataSource by setting spring.flyway.[url,user,password] in external properties. Setting either spring.flyway.url or spring.flyway.user is sufficient to cause Flyway to use its own DataSource. If any of the three properties has not be set, the value of its equivalent spring.datasource property will be used.
所以你应该在yaml中填写以上三个属性,这样只会迁移指定的数据源。