我需要在Spring中为两个数据源设置liquibase,目前似乎只有一个liquibase设置是可能的,您可以选择哪个数据源。如何在Spring中为多个数据源设置liquibase?
2
A
回答
8
如果使用的是春天开机,这里是设置它可以帮助你:
配置类:
@Configuration
public class DatasourceConfig {
@Primary
@Bean
@ConfigurationProperties(prefix = "datasource.primary")
public DataSource primaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix = "datasource.primary.liquibase")
public LiquibaseProperties primaryLiquibaseProperties() {
return new LiquibaseProperties();
}
@Bean
public SpringLiquibase primaryLiquibase() {
return springLiquibase(primaryDataSource(), primaryLiquibaseProperties());
}
@Bean
@ConfigurationProperties(prefix = "datasource.secondary")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}
@Bean
@ConfigurationProperties(prefix = "datasource.secondary.liquibase")
public LiquibaseProperties secondaryLiquibaseProperties() {
return new LiquibaseProperties();
}
@Bean
public SpringLiquibase secondaryLiquibase() {
return springLiquibase(secondaryDataSource(), secondaryLiquibaseProperties());
}
private static SpringLiquibase springLiquibase(DataSource dataSource, LiquibaseProperties properties) {
SpringLiquibase liquibase = new SpringLiquibase();
liquibase.setDataSource(dataSource);
liquibase.setChangeLog(properties.getChangeLog());
liquibase.setContexts(properties.getContexts());
liquibase.setDefaultSchema(properties.getDefaultSchema());
liquibase.setDropFirst(properties.isDropFirst());
liquibase.setShouldRun(properties.isEnabled());
liquibase.setLabels(properties.getLabels());
liquibase.setChangeLogParameters(properties.getParameters());
liquibase.setRollbackFile(properties.getRollbackFile());
return liquibase;
}
...
}
性能。 yml
datasource:
primary:
url: jdbc:mysql://localhost/primary
username: username
password: password
liquibase:
change-log: classpath:/db/changelog/db.primary.changelog-master.xml
secondary:
url: jdbc:mysql://localhost/secondary
username: username
password: password
liquibase:
change-log: classpath:/db/changelog/db.secondary.changelog-master.xml
0
只要有2个数据源和2种豆
<bean id="liquibase1" class="liquibase.integration.spring.SpringLiquibase">
<property name="dataSource" ref="dataSource1" />
<property name="changeLog" value="classpath:db1-changelog.xml" />
</bean>
<bean id="liquibase2" class="liquibase.integration.spring.SpringLiquibase">
<property name="dataSource" ref="dataSource2" />
<property name="changeLog" value="classpath:db2-changelog.xml" />
</bean>
+0
如果我们需要以混合顺序运行脚本,该怎么办?我们的情况下,我们需要运行一个脚本,从dataSource1然后dataSource2,然后再dataSource1 ... – mCeviker
0
您也可以运行多个liquibase实例(即不仅限于小学和中学)。
例如你的配置Java可以有:
@Bean
@ConfigurationProperties(prefix = "liquibase1")
...
@Bean
@ConfigurationProperties(prefix = "liquibase2")
...
@Bean
@ConfigurationProperties(prefix = "liquibase3")
你application.property可以有:
liquibase1.default-schema=schemaA
...
liquibase2.default-schema=schemaB
...
liquibase3.default-schema=schemaC
...
和(令人兴奋的),这些springLiquibase情况下,可以使用相同的数据源,或者不同的数据源......但是你喜欢它。
运行命令?我没有发现任何官方文档,根据我在调试中观察到的情况,所有liquibase迁移均按照您在application.properties中编写的顺序运行。那些想要在一个数据源中运行迁移,然后转到另一个数据源,然后返回到这个数据源并运行其他东西,您可能想要尝试使用这种多重liquibase实例方法。
相关问题
- 1. Spring和Mybatis多个数据源设置
- 2. Spring + MyBatis - 设置数据源
- 3. LIQUIBASE LIQUIBASE:将小数位数设置为列数据类型
- 4. 如何在数据源中为listview设置数据项kendo ui
- 5. 如何设置弹簧数据的JPA与多个数据源
- 6. 如何使用Spring @Configuration类配置多个JPA数据源?
- 7. 如何在jsp中设置数据源?
- 8. 如何在Spring Boot中使用多个数据源时设置多个连接池?
- 9. 如何设置数据源?
- 10. 使用Spring Cloud设置数据源
- 11. 如何在C中为多个UDP数据包设置超时?
- 12. Spring Boot - 配置两个数据源 - 如何使用第二个数据源?
- 13. 为combobox设置数据源
- 14. 在Spring 3.0中配置数据源
- 15. 如何在TileStache中将Geojson设置为数据源
- 16. 如何设置Spring/Heroku/postgres SSL数据源
- 17. 如何设置Spring Boot + Bitronix +非XA数据源+ XA JMS连接
- 18. 设置Cassandra Liquibase
- 19. 多个数据源配置
- 20. 多个数据源配置
- 21. 如何在Select2中从数据源设置数据*?
- 22. 使用Spring的多个数据源JPA
- 23. Spring引导多个数据源
- 24. 如何在Sonar Server中设置多个源位置?
- 25. 如何为多个数据中心设置MongoDB?
- 26. 将多个对象设置为水晶报表的数据源
- 27. #Storm:如何为同一个数据源设置各种指标
- 28. 如何为Sybase数据源设置DB2 Express-C数据联合?
- 29. Spring + Liquibase
- 30. 如何使用require JS为数据表配置多个源?
这适用于向Application类添加@EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class),但我在本地和数据文件上使用h2在禁用自动配置时不会再加载。我怎样才能强制spring加载没有模式文件的数据文件? –
你有什么样的数据文件? – dimuha
data-h2.sql文件 –