web-dev-qa-db-ja.com

Spring boot-起動時にLiquibaseを無効にします

SpringブートアプリケーションでLiquibaseを構成したいので、pom.xmlに依存関係を追加し、application.propertiesでmaster.xmlへのパスを設定しました。これは正常に機能し、Springは起動時にLiquibaseを実行します。問題は、アプリケーションの起動時ではなく、手動でLiquibaseを実行したいということです。 Liquibaseの自動構成を完全に無効にする必要がありますか、それを使用して起動時に実行中の評価のみを無効にできますか?

20
Gravian

Application.propertiesファイルにliquibase.enabled=falseを追加します

参照

ただし、アプリケーションからliquibaseを使用したくない場合は、pomからliquibaseスターターを完全に削除してください。

28
Sangram Jadhav

関連するプロパティ名は、Springバージョン間で変更されています。

  • Spring 4.x.xliquibase.enabled=falseアプリケーションプロパティはLiquibaseを無効にします。

  • Spring 5.x.xspring.liquibase.enabled=falseアプリケーションプロパティはLiquibaseを無効にします。


追伸フライウェイの場合:

  • 春4.x.xflyway.enabled=false

  • 春5.x.xspring.flyway.enabled=false

23
Alex Shesterov

LiquibasePropertiesに表示される場合、次のようなプレフィックスがあります

 prefix = "spring.liquibase"

だから、私の提案は使用することです

spring.liquibase.enabled=false

Spring Boot 2.0.0.RC1の問題を解決しました

19
maruf571

何らかの理由でプロパティからLiquibaseを無効にできないという問題に直面したため、@Bean注釈:

@Bean
public SpringLiquibase liquibase() {
  SpringLiquibase liquibase = new SpringLiquibase();
  liquibase.setShouldRun(false);
  return liquibase;
}
6
Dávid Elek

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>

設定の詳細については plugin documentation をご覧ください。

また、Spring Bootのliquibaseサポートは使用しないでください。これはランタイムでのみ使用することを目的としています。 mavenプラグインのみが必要になるため、liquibaseスターターや関連する依存関係を削除してください。

2
Cèsar