在 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 中删除索引的问题