Spring boot - отключить Liquibase при запуске

Я хочу, чтобы Liquibase сконфигурирован с помощью моей утилиты загрузки spring, поэтому я добавил зависимости к pom.xml и установил путь к master.xml в application.properties. Это отлично работает, а spring запускает Liquibase при запуске. Проблема в том, что теперь я хочу запускать Liquibase вручную, а не при запуске приложения. Должен ли я полностью отключить автоконфигурацию Liquibase, или я могу использовать его и отключать только запущенные оценки при запуске?

Ответ 1

Добавьте liquibase.enabled=false в файл application.properties

Reference

Но если вы больше не хотите использовать липибазу из приложения, полностью удалите липибазный стартер из pom.

Ответ 2

Соответствующее имя свойства изменилось между версиями Spring:

  • Для Spring 4.xx: liquibase.enabled=false приложения liquibase.enabled=false отключает Liquibase.

  • Для Spring 5.xx: spring.liquibase.enabled=false приложения spring.liquibase.enabled=false отключает Liquibase.


PS А для Flyway:

  • Spring 4.xx: flyway.enabled=false

  • Spring 5.xx: spring.flyway.enabled=false

Ответ 3

Если вы видите на LiquibaseProperties, есть префикс типа

 prefix = "spring.liquibase"

Итак, Мое предложение состоит в том, чтобы использовать

spring.liquibase.enabled=false

Он решил мою проблему с помощью spring boot 2.0.0.RC1

Ответ 4

Я столкнулся с проблемой, из-за которой я почему-то не смог отключить Liquibase от свойств, поэтому я отключил Liquibase с аннотацией @Bean:

@Bean
public SpringLiquibase liquibase() {
  SpringLiquibase liquibase = new SpringLiquibase();
  liquibase.setShouldRun(false);
  return liquibase;
}

Ответ 5

Если вы хотите запустить Liquibase вручную, вы можете использовать плагин Liquibase maven. Просто добавьте что-то подобное вашему pom.xml:

  <plugin>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-maven-plugin</artifactId>
    <version>${liquibase.version}</version>
    <configuration>
      <changeLogFile>src/main/liquibase/master.xml</changeLogFile>
      <propertyFile>src/main/liquibase/liquibase.properties</propertyFile>
      <promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
    </configuration>
  </plugin>

Вы можете посмотреть документацию плагина для деталей конфигурации.

И не используйте поддержку Liquibase от Spring Boot, так как он предназначен только для использования во время выполнения. Просто удалите стартер жидкости и/или любые связанные зависимости, поскольку вам нужен только плагин maven.