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.xx :
liquibase.enabled=false
应用程序属性禁用Liquibase。 -
对于Spring 5.xx :
spring.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; }