Gra*_*ian 24 java spring liquibase maven spring-boot
我想让Liquibase配置我的spring boot aplication,所以我将依赖项添加到pom.xml并在application.properties中设置master.xml的路径.这很好用,Spring在启动时运行Liquibase.问题是现在我想手动运行Liquibase,而不是在应用程序启动时运行.我应该完全禁用Liquibase自动配置还是我可以使用它并且只在启动时禁用运行评估?
Ale*_*rov 26
Spring版本之间的相关属性名称已更改:
对于Spring 4.xx:liquibase.enabled=false应用程序属性禁用Liquibase.
对于Spring 5.xx:spring.liquibase.enabled=falseapplication属性禁用Liquibase.
mar*_*571 19
如果你在LiquibaseProperties上看到,就会有一个前缀
prefix = "spring.liquibase"
Run Code Online (Sandbox Code Playgroud)
所以,我的建议是使用
spring.liquibase.enabled=false
Run Code Online (Sandbox Code Playgroud)
它通过spring boot 2.0.0.RC1解决了我的问题
小智 7
我遇到一个由于某种原因而无法从属性禁用Liquibase的问题,所以这就是我通过@Bean注释禁用Liquibase的方式:
@Bean
public SpringLiquibase liquibase() {
SpringLiquibase liquibase = new SpringLiquibase();
liquibase.setShouldRun(false);
return liquibase;
}
Run Code Online (Sandbox Code Playgroud)
还有一种更程序化的方法。
@EnableAutoConfiguration(exclude = LiquibaseAutoConfiguration.class)
在应用程序主类上
如果您想手动运行 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>
Run Code Online (Sandbox Code Playgroud)
您可以查看插件文档以了解配置详细信息。
并且不要使用 Spring Boot 的 liquibase 支持,因为它仅适用于运行时。只需删除 liquibase 启动器和/或任何相关依赖项,因为您只需要 Maven 插件。
| 归档时间: |
|
| 查看次数: |
26343 次 |
| 最近记录: |