Неосновная встроенная схема базы данных не инициализируется - PullRequest
0 голосов
/ 13 июня 2018

В настоящее время я работаю над приложением Spring Boot (1.5.10.RELEASE), которое использует 2 встроенные базы данных.Эти две базы данных определены одинаково, но одна определяется в самом приложении, а другая определяется в пользовательском классе автоконфигурации, который находится в импортированном JAR;только инициализированная схема получает только тот, который помечен как @Primary (тот, что в приложении).

Это текущее определение для обоих источников данных:

Первичный в приложении:

@Configuration
public class DataSourceConfiguration {    

    @Bean
    @ConfigurationProperties(prefix = "first.datasource")
    @Primary
    public DataSourceProperties firstProperties() {
        return new DataSourceProperties();
    }

    @Bean
    @Primary
    public DataSource firstDataSource() {
        return firstProperties().initializeDataSourceBuilder().build();
    }

    @Bean
    @Primary
    public JdbcTemplate firstTemplate() {
        return new JdbcTemplate(firstDataSource());
    }
}

В автоконфигурации:

@Configuration
@ConditionalOnProperty(name = "second.datasource.url")
public class SecondDataSourceAutoconfiguration {

    @Bean
    @ConfigurationProperties(prefix = "second.datasource")
    public DataSourceProperties secondProperties() {
        return new DataSourceProperties();
    }

    @Bean
    public DataSource secondDataSource() {
         return secondProperties().initializeDataSourceBuilder().build();
    }

    @Bean
    public JdbcTemplate secondJdbcTemplate(@Qualifier("secondDataSource") DataSource datasource) {
        return new JdbcTemplate(datasource);
    }
}

И мой application.yml заполняет свойства:

first:
    datasource:
        url: jdbc:h2:firstdb;DB_CLOSE_ON_EXIT=FALSE
second:
    datasource:
        url: jdbc:h2:seconddb
        platform: h2

Моя папка ресурсов содержит как schema.sql, который выполняется наfirstdb и schema-h2.sql, которые должны выполняться на seconddb, но это не так.Я попытался поиграться со свойствами datasource.schema и datasource.initialize, переключив имена сценариев и свойство платформы на первый источник данных (в этом случае schema-h2.sql выполняется на firstdb, но ничего на seconddb) и изменение поставщика встроенной базы данных на HSQLDB;но все равно не могу инициализировать схему для неосновной БД в памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...