首页 文章

Spring启动 - 启动时禁用Liquibase

提问于
浏览
17

我想让Liquibase配置我的spring boot aplication,所以我将依赖项添加到pom.xml并在application.properties中设置master.xml的路径 . 这很好用,Spring在启动时运行Liquibase . 问题是现在我想手动运行Liquibase,而不是在应用程序启动时运行 . 我应该完全禁用Liquibase自动配置还是我可以使用它并且只在启动时禁用运行评估?

5 回答

  • 27

    在application.properties文件中添加 liquibase.enabled=false

    Reference

    但如果您不想再使用liquibase,请从pom中删除liquibase starter .

  • 19

    Spring版本之间的相关属性名称已更改:

    • 对于 Spring 4.x.xliquibase.enabled=false application属性禁用Liquibase .

    • 对于 Spring 5.x.xspring.liquibase.enabled=false application属性禁用Liquibase .

  • 2

    如果你在LiquibaseProperties上看到,就会有一个前缀

    prefix = "spring.liquibase"
    

    所以,我的建议是使用

    spring.liquibase.enabled=false
    

    它通过spring boot 2.0.0.RC1解决了我的问题

  • 4

    我遇到了一个问题,我无法出于某种原因从属性中禁用Liquibase,所以这就是我用 @Bean 注释禁用Liquibase的方法:

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

    如果要手动运行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支持,因为它仅用于运行时 . 只需删除liquibase启动器和/或任何相关的依赖项,因为您只需要maven插件 .

相关问题