SpringブートアプリケーションでLiquibaseを構成したいので、pom.xmlに依存関係を追加し、application.propertiesでmaster.xmlへのパスを設定しました。これは正常に機能し、Springは起動時にLiquibaseを実行します。問題は、アプリケーションの起動時ではなく、手動でLiquibaseを実行したいということです。 Liquibaseの自動構成を完全に無効にする必要がありますか、それを使用して起動時に実行中の評価のみを無効にできますか?
Application.propertiesファイルにliquibase.enabled=false
を追加します
ただし、アプリケーションからliquibaseを使用したくない場合は、pomからliquibaseスターターを完全に削除してください。
関連するプロパティ名は、Springバージョン間で変更されています。
Spring 4.x.x:liquibase.enabled=false
アプリケーションプロパティはLiquibaseを無効にします。
Spring 5.x.x:spring.liquibase.enabled=false
アプリケーションプロパティはLiquibaseを無効にします。
追伸フライウェイの場合:
春4.x.x:flyway.enabled=false
春5.x.x:spring.flyway.enabled=false
LiquibasePropertiesに表示される場合、次のようなプレフィックスがあります
prefix = "spring.liquibase"
だから、私の提案は使用することです
spring.liquibase.enabled=false
Spring Boot 2.0.0.RC1の問題を解決しました
何らかの理由でプロパティからLiquibaseを無効にできないという問題に直面したため、@Bean
注釈:
@Bean
public SpringLiquibase liquibase() {
SpringLiquibase liquibase = new SpringLiquibase();
liquibase.setShouldRun(false);
return liquibase;
}
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スターターや関連する依存関係を削除してください。