Spring启动 – 启动时禁用Liquibase

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

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

参考

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

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

  prefix = "spring.liquibase" 

所以,我的建议是使用

 spring.liquibase.enabled=false 

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

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

  • 对于Spring 4.xxliquibase.enabled=false应用程序属性禁用Liquibase。

  • 对于Spring 5.xxspring.liquibase.enabled=false应用程序属性禁用Liquibase。

如果您想手动运行Liquibase,可以使用liquibase maven插件。 只需将这样的内容添加到您的pom.xml:

   org.liquibase liquibase-maven-plugin ${liquibase.version}  src/main/liquibase/master.xml src/main/liquibase/liquibase.properties false   

您可以查看插件文档以获取配置详细信息。

并且不要使用Spring Boot的liquibase支持,因为它仅用于运行时。 只需删除liquibase启动器和/或任何相关的依赖项,因为您只需要maven插件。

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

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