2016-06-08 20 views
6

Tôi muốn có Liquibase được cấu hình với ứng dụng khởi động mùa xuân của tôi, vì vậy tôi đã thêm các phụ thuộc vào pom.xml và thiết lập đường dẫn đến master.xml trong application.properties. Điều này hoạt động tốt và Spring chạy Liquibase lúc khởi động. Vấn đề là bây giờ tôi muốn chạy Liquibase bằng tay, không phải lúc khởi động ứng dụng. Tôi có nên tắt hoàn toàn tính năng tự động cấu hình Liquibase hoặc tôi có thể sử dụng nó và chỉ vô hiệu hóa việc chạy các đánh giá khi khởi động?Khởi động mùa xuân - vô hiệu hóa Liquibase lúc khởi động

Trả lời

2

Nếu bạn muốn chạy Liquibase theo cách thủ công, bạn có thể sử dụng plugin mib hóa lỏng. Chỉ cần thêm một cái gì đó như thế này vào tệp pom.xml của bạn:

<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> 

Bạn có thể xem plugin documentation để biết chi tiết cấu hình.

Và không sử dụng hỗ trợ liquibase từ Spring Boot, vì nó chỉ có nghĩa là được sử dụng trong thời gian chạy. Chỉ cần loại bỏ bộ khởi động liquibase và/hoặc bất kỳ phụ thuộc liên quan nào vì bạn sẽ chỉ cần plugin maven.

+0

Vấn đề với điều này là khi khởi động mùa xuân tìm thấy liquibase trên classpath nó sẽ cố gắng thực hiện khi khởi động afaik. –

+0

Đó là lý do tại sao bạn phải loại bỏ bộ khởi động lỏng, hoặc bất kỳ sự phụ thuộc lỏng trực tiếp nào nếu bạn thêm bất kỳ chất lỏng nào. Nếu bạn chỉ có plugin mib liquibase, thì liquibase không có trong classpath của ứng dụng. –

14

Thêm liquibase.enabled=false trong application.properties bạn nộp

Reference

Nhưng nếu bạn không muốn sử dụng liquibase từ ứng dụng nữa, loại bỏ khởi liquibase hoàn toàn từ pom.

1

tôi phải đối mặt với một vấn đề mà tôi đã không thể vô hiệu hóa Liquibase từ thuộc tính cho một số lý do, vì vậy đây là cách tôi tàn tật Liquibase với @Bean chú thích:

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

Nếu bạn nhìn thấy trên LiquibaseProperties, có một tiền tố như

prefix = "spring.liquibase" 

Vì vậy, Đề nghị của tôi là sử dụng

spring.liquibase.enabled=false 

Nó giải quyết vấn đề của tôi với khởi động mùa xuân 2.0.0.RC1

Các vấn đề liên quan