Liquibase - выполнять изменения только при запуске приложения - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть простая конфигурация liquibase в приложении Spring Boot:

@Configuration
public class MySQLConfig {

    @Bean
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource getDataSource()
    {
        DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
        dataSourceBuilder.driverClassName("com.mysql.jdbc.Driver");
        dataSourceBuilder.url("jdbc:mysql://localhost:3306/test");
        dataSourceBuilder.username("root");
        dataSourceBuilder.password("root");
        return dataSourceBuilder.build();
    }

    @Bean(name = "liquibase")
    public SpringLiquibase liquibase(DataSource dataSource) {
        SpringLiquibase springLiquibase = new SpringLiquibase();
        springLiquibase.setDataSource(dataSource);
        springLiquibase.setChangeLog("classpath:liquibase/db.changelog-master.xml");
        return springLiquibase;
    }
}

Проблема в том, что все changsets в файле "db.changelog-master. xml" выполняются при сборке приложения с использованием maven (mvn чистая установка). Я хотел бы выполнить его только тогда, когда мое приложение запускается (соответственно: mvn spring-boot: run). Какую конфигурацию я должен установить для достижения этого?

1 Ответ

1 голос
/ 09 февраля 2020

На самом деле @SpringBootTest был проблемой здесь. Он запускает контекст приложения, поэтому приводит к выполнению наборов изменений в liquibase на этапе установки maven.

...