spring-boot - Spring boot - 如何禁用每个数据源的 Flyway
问题描述
需要有关 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 应该flywayInitializer
只为主 bean 注入,但有时它也可以应用legacyDataSource
(例如,当当前配置文件中禁用 dataSource 时)。Flyway 是否可以选择为每个数据源 bean 禁用它?输入键的提示application.properties
会非常好;)
解决方案
从文档:
您可以通过在外部属性中设置 spring.flyway.[url,user,password] 来使用 Flyway 的原生 DataSource。设置 spring.flyway.url 或 spring.flyway.user 足以使 Flyway 使用自己的 DataSource。如果没有设置三个属性中的任何一个,则将使用其等效 spring.datasource 属性的值。
因此,您应该在 yaml 中填写上述三个属性,因此只会迁移指定的数据源。
推荐阅读
- java - 在 Pega 平台上跟踪生成的 Java 的编译
- r - 如何使用 actionButton 更改 R Shiny 中 selectInput 上的选定值?
- python - 具有身份验证的 Selenium 代理
- mysql - xampp mysql文件夹是只读的,不能删除只读属性
- php - 致命错误:无法创建类实例
- python - 有没有办法在python中按大小对水平条形图进行排序?
- elasticsearch - apache NIFI ScrollElasticsearchHttp 过滤掉具有空字段的记录
- python - Pancakeswap 交易失败消息 python
- sql - SQL 使用日期表计算最长连续天数
- swiftui - 被 SwiftUI 中的拖放困扰