【发布时间】:2021-11-02 22:18:32
【问题描述】:
朋友们,如何使用Flyway配置多个数据库的迁移?在我的 Spring 应用程序中,我使用了 2 个数据库,第一个数据库(PostgreSQL)负责 Web,它存储用户、角色等数据,第二个数据库(MySQL)负责业务逻辑。数据库位于不同的主机上,并且没有以任何方式相互连接。当然,我的数据源具有不同的数据结构。
我已经配置了两个数据源,分别是LocalDBConfig和JiraDBConfig。
@Configuration
@PropertySource( { "classpath:application.properties" } )
@EnableJpaRepositories(
basePackages = "net.komus.oksitreport.repo.local",
entityManagerFactoryRef = "localEntityManager",
transactionManagerRef = "localTransactionManager"
)
public class LocalDBConfig {
@Primary
@Bean
@ConfigurationProperties( prefix = "spring.datasource" )
@FlywayDataSource
public DataSource customerDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "localEntityManager")
@Primary
public LocalContainerEntityManagerFactoryBean localEntityManager() {
...
}
@Bean
@Primary
public PlatformTransactionManager localTransactionManager() {
...
}
}
@Configuration
@PropertySource( { "classpath:application.properties" } )
@EnableJpaRepositories(
basePackages = "net.komus.oksitreport.repo.jira",
entityManagerFactoryRef = "jiraEntityManager",
transactionManagerRef = "jiraTransactionManager"
)
public class JiraDBConfig {
@Bean
@ConfigurationProperties( prefix = "db.jira.datasource" )
@FlywayDataSource
public DataSource jiraDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "jiraEntityManager")
public LocalContainerEntityManagerFactoryBean jiraEntityManager() {
...
}
@Bean
public PlatformTransactionManager jiraTransactionManager() {
...
}
}
db/migrate/manager 路径应负责本地数据库配置迁移,db/migrate/jira 路径应负责 JiraDBConfig 迁移。
我不明白如何配置我需要的功能。
【问题讨论】: