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 次  |  
        
|   最近记录:  |