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
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.
Thêm liquibase.enabled=false
trong application.properties bạn nộp
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.
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;
}
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
- 1. Nhiều cấu hình liquibase trong khởi động mùa xuân
- 2. Giảm thiểu thời gian khởi động khởi động mùa xuân
- 3. làm thế nào để vô hiệu hóa logo khởi động mùa xuân trong stdout?
- 4. Khởi động mùa xuân Truy vấn động
- 5. Taglib khởi động mùa xuân
- 6. Khởi động mùa xuân + cassandra
- 7. Tăng tốc thời gian khởi động Khởi động mùa xuân
- 8. Khởi động mùa xuân - Mã hóa dữ liệu JSON
- 9. Khởi động mùa xuân yml Tệp ResourceBundle
- 10. Log4j.properties trong khởi động mùa xuân
- 11. Khởi động mùa xuân và FreeMarker
- 12. Khởi động mùa xuân + Groovy + logback.groovy
- 13. Khởi động mùa xuân - @ConditionalOnProperty hoặc @ConditionalOnExpression
- 14. Khởi động mùa xuân + Websocket (SockJS)
- 15. khởi động mùa xuân application.properties bên ngoài
- 16. Bộ khởi động mùa xuân obfuscator
- 17. Ứng dụng khởi động mùa xuân
- 18. Lợi thế của khởi động mùa xuân
- 19. plugin gradle khởi động mùa xuân
- 20. Khởi động mùa xuân và CORS
- 21. Khởi động mùa xuân @EnableScheduling có điều kiện
- 22. Vô hiệu hóa bảo mật cho các bài kiểm tra đơn vị với khởi động mùa xuân
- 23. Vô hiệu hóa các plugin khi khởi động Eclipse
- 24. tắt bảo mật mùa xuân trong ứng dụng khởi động mùa xuân
- 25. Thuộc tính dòng lệnh khởi động mùa xuân có sẵn khi sử dụng khởi động mùa xuân: chạy không?
- 26. Khởi động mùa xuân + Dữ liệu mùa xuân JPA + Giao dịch không hoạt động đúng cách
- 27. Làm thế nào để tắt bảo mật mùa xuân trong ứng dụng khởi động mùa xuân
- 28. khởi động mùa xuân đa mô-đun servletDispatchers
- 29. Khởi động mùa xuân - biến tùy chỉnh trong Application.properties
- 30. cách thiết defaultLocale lập trình trong khởi động mùa xuân
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. –
Đó 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. –