繁体   English   中英

Spring 引导 - 在启动时禁用 Liquibase

[英]Spring boot - disable Liquibase at startup

我想用我的Spring Boot应用程序配置 Liquibase,所以我将依赖项添加到pom.xml并在application.properties中将路径设置为master.xml 这工作正常并且Spring Boot在启动时运行Liquibase 问题是现在我想手动运行Liquibase ,而不是在应用程序启动时。 我应该完全禁用Liquibase的自动配置,还是可以使用它并仅在启动时禁用运行评估?

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

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

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


PS和Flyway:

  • Spring 4.xx : flyway.enabled=false

  • 弹簧 5.xx : spring.flyway.enabled=false

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

参考

但是,如果您不想再从应用程序中使用 liquibase,请从 pom 中完全删除 liquibase starter。

如果您在 LiquibaseProperties 上看到,则有一个前缀,例如

 prefix = "spring.liquibase"

所以,我的建议是使用

spring.liquibase.enabled=false

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

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

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

还有一种更程序化的方法。

@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>

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

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

您可以使用 spring.liquibase.enabled=true/false

虽然记录的 Spring 引导解决方案是spring.liquibase.enabled=false ,但它对我不起作用。 要禁用 liquibase,您还可以使用以下属性:

liquibase.shouldRun=false

我在启动 Spring Boot jar 时将其作为命令行参数传递

-Dliquibase.shouldRun=false

https://docs.liquibase.com/parameters/should-run.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM