在 Liquibase 4.0 中删除了通过绝对路径指定文件

Posted

技术标签:

【中文标题】在 Liquibase 4.0 中删除了通过绝对路径指定文件【英文标题】:Specifying files by absolute path was removed in Liquibase 4.0 【发布时间】:2021-10-22 18:08:42 【问题描述】:

我在运行 Spring Boot 应用程序时收到以下 liquibase 错误:

。请使用相对路径或在类路径参数中添加“/”。

这是 application.yaml 中的类路径:

  liquibase:
    change-log: classpath:db/changelog/db-changelog-master.xml

我也试过了:

  liquibase:
    change-log: classpath:/db/changelog/db-changelog-master.xml

这是文件夹结构:

Changlog 大师:

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
         http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.5.xsd">

    <include file="db-changelog-1.0.xml"/>
</databaseChangeLog>

【问题讨论】:

这是一个已知问题,但尚未找到解决方法。他们建议使用 3.5 版 github.com/liquibase/liquibase/issues/1277 您找到解决方案了吗? 【参考方案1】:

看起来这在 v4.4.3 中已修复

【讨论】:

我在 ubuntu v4.4.3 上仍然有它。你确定吗? 在 4.6.1 上仍然存在【参考方案2】:

我在将 changelog 文件放在资源文件夹之外时遇到了这个问题,但如果我将它们包含在 resources/db/changelog 下,那么它可以通过设置波纹管配置正常工作。

spring.liquibase.change-log=classpath:/db/changelog/changelog-master.xml

在 4.6.2 下测试

【讨论】:

这个解决方案也适用于 4.6.2

以上是关于在 Liquibase 4.0 中删除了通过绝对路径指定文件的主要内容,如果未能解决你的问题,请参考以下文章

Liquibase 无法找到用于 4.0 及更高版本的集成测试的更改日志文件

使用 liquibase 在 postgres 中删除索引的问题

使用 oracle 更改 Liquibase 中的序列

如果在 MYSQL 中使用 liquibase,则删除外键

使用 mvn liquibase:diff 时如何禁用删除表和列?

使用liquibase从主键中删除自动增量