【问题标题】:Liquibase scripts not getting executed when app is packaged打包应用程序时未执行 Liquibase 脚本
【发布时间】:2018-02-26 21:10:49
【问题描述】:

我在使用 Liquibase 时遇到了一个奇怪的问题(我使用的是 3.4.2):

  • 当我从我的 IDE 启动应用程序时,新脚本会顺利部署。
  • 当我打包我的应用程序(作为 jar 包)并将其部署到我的 CI 管道中时,脚本没有得到执行,并且出现以下错误:

INFO 8 --- [main] liquibase:成功获取更改日志锁
WARN 8 --- [main] liquibase:包含的文件类路径:/db/changelog/db.changelog-master.yaml/ 不是可识别的文件类型

我正在使用 includeAll 模式:

databaseChangeLog:
  - includeAll:
      path: changes
      relativeToChangelogFile: true

另外,如果它有所作为,我的应用程序中有几个模块(一个 Spring Boot 应用程序):

  • 我的主要应用程序是 moduleA:这是我构建和运行的 jar
  • moduleA 依赖于 moduleB,其中 Liquibase 脚本是

问题似乎与此处描述的类似:http://forum.liquibase.org/topic/includeall-not-working-for-multimodule-project-with-spring,但未提供解决方案。

【问题讨论】:

    标签: spring-boot liquibase


    【解决方案1】:

    在尝试了各种事情之后,比如一个一个包含文件,或者升级 Liquibase 版本,看起来最简单的方法是通过解压缩文件来调整 moduleA 的 spring-boot-maven-plugin 配置:这种方式, Liquibase 能够找到它正在寻找的文件。

            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <requiresUnpack>
                        <dependency>
                            <groupId>com.mydomain</groupId>
                            <artifactId>moduleB</artifactId>
                        </dependency>
                    </requiresUnpack>
                </configuration>
            </plugin>
    

    【讨论】:

      猜你喜欢
      • 2017-10-14
      • 2016-08-14
      • 2015-08-23
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 1970-01-01
      相关资源
      最近更新 更多