У меня есть приложение весенней загрузки с двумя источниками данных. Мой первоисточник - postgres с гибернацией и ликвидазой. Мой второй источник данных - postgres, но без ликвидазы. У меня есть два пакета с сущностями. Но когда я запускаю mvn liquibase:diff
, журнал изменений содержит не только первичные сущности из de.example.model
, но также сущности из de.example.secondary.model
, то есть только для вторичного источника данных. Я не знаю, как я могу исключить эти лица. Вот мой основной конфиг:
@Profile("!test")
@Configuration
@EnableJpaRepositories(basePackages = { "de.example.repository",
"de.example.other.repository" }, entityManagerFactoryRef = "entityManager", transactionManagerRef = "transactionManager")
public class DatabaseConfig {
@Autowired
private Environment env;
@Bean
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource DataSource() {
return DataSourceBuilder.create().build();
}
@Bean("entityManager")
@Primary
public LocalContainerEntityManagerFactoryBean EntityManager(EntityManagerFactoryBuilder builder) {
return builder.dataSource(DataSource()).persistenceUnit("entityManager")
.packages("de.example.model").properties(hibernateProperties()).build();
}
private Map<String, Object> hibernateProperties() {
Map<String, Object> properties = new HashMap<>();
properties.put("hibernate.physical_naming_strategy", env.getProperty("spring.jpa.hibernate.naming.physical-strategy"));
properties.put("hibernate.hbm2ddl.auto", env.getProperty("spring.jpa.hibernate.ddl-auto"));
properties.put("hibernate.dialect", env.getProperty("spring.jpa.properties.hibernate.dialect"));
return properties;
}
@Bean("transactionManager")
@Primary
public PlatformTransactionManager transactionManager(
@Qualifier("entityManager") EntityManagerFactory entityManagerFactory) {
return new JpaTransactionManager(entityManagerFactory);
}
@Bean
@ConfigurationProperties(prefix = "spring.liquibase")
public LiquibaseProperties LiquibaseProperties() {
return new LiquibaseProperties();
}
@Bean("liquibase")
public SpringLiquibase Liquibase() {
return springLiquibase(DataSource(), LiquibaseProperties());
}
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;
}
}