Spring Boot -启动时禁用Liquibase

nom7f22z  于 2023-01-13  发布在  Spring
关注(0)|答案(7)|浏览(593)

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

ql3eal8s

ql3eal8s1#

相关属性名称在Spring版本之间发生了变化:

  • 对于Spring4.x.xliquibase.enabled=false应用程序属性禁用Liquibase。
  • 对于Spring5.x.xspring.liquibase.enabled=false应用程序属性禁用Liquibase。

P.S.和Flyway:

*Spring4.x.xflyway.enabled=false
*Spring5.x.xspring.flyway.enabled=false

fcwjkofz

fcwjkofz2#

在www.example.com文件中添加liquibase.enabled=falseapplication.properties
Reference
但是如果你不想在应用程序中使用liquibase,可以从pom中删除liquibase starter。

eqqqjvef

eqqqjvef3#

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

prefix = "spring.liquibase"

所以,我的建议是

spring.liquibase.enabled=false

它解决了我使用 Spring Boot 2.0.0.RC1的问题

2vuwiymt

2vuwiymt4#

我遇到了一个问题,由于某种原因,我无法从属性中禁用Liquibase,所以下面是我如何使用@Bean注解禁用Liquibase的:

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

irtuqstp5#

还有一个方案性办法。
@EnableAutoConfiguration(exclude = LiquibaseAutoConfiguration.class)
在应用程序主类上

stszievb

stszievb6#

如果你想手动运行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以了解配置细节。
不要使用Sping Boot 提供的liquibase支持,因为它只能在运行时使用。只需删除liquibase启动器和/或任何相关的依赖项,因为您只需要maven插件。

js4nwp54

js4nwp547#

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

相关问题