Я хочу, чтобы Liquibase сконфигурирован с помощью моей утилиты загрузки spring, поэтому я добавил зависимости к pom.xml и установил путь к master.xml в application.properties. Это отлично работает, а spring запускает Liquibase при запуске. Проблема в том, что теперь я хочу запускать Liquibase вручную, а не при запуске приложения. Должен ли я полностью отключить автоконфигурацию Liquibase, или я могу использовать его и отключать только запущенные оценки при запуске?
Spring boot - отключить Liquibase при запуске
Ответ 1
Добавьте liquibase.enabled=false
в файл application.properties
Но если вы больше не хотите использовать липибазу из приложения, полностью удалите липибазный стартер из 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.