首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Liquibase找不到changelog文件

Liquibase找不到changelog文件
EN

Stack Overflow用户
提问于 2020-11-25 17:39:10
回答 1查看 50关注 0票数 0

我正在尝试以编程方式调用liquibase。

为此,我使用以下代码:

代码语言:javascript
复制
val database = DatabaseFactory.getInstance()
    .findCorrectDatabaseImplementation(JdbcConnection(connection))

Liquibase(pathToChangelog, ClassLoaderResourceAccessor(), database)
    .update(Contexts(), LabelExpression())

Liquibase设法连接到数据库并获取锁,但在解析pathToChangelog时失败,并出现path/to/changelog does not exist错误。

下面是我的WAR文件结构:

代码语言:javascript
复制
WEB-INF
  \  changelog
       \ db.changelog-master.xml

我试过了

代码语言:javascript
复制
"WEB-INF/changelog/db.changelog-master.xml"
"/WEB-INF/changelog/db.changelog-master.xml"
"changelog/db.changelog-master.xml"
System.getProperty("user.dir") + "/WEB-INF/changelog/db.changelog-master.xml"

当然还有其他一些东西,但都无济于事。它一直告诉我这个文件不存在。

我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-27 23:14:51

通过查看源代码找到了答案。文件必须放在WEB-INF/classes目录中,路径必须是从那里开始的相对路径。

例如,如果你把你的主文件放在这里:

代码语言:javascript
复制
WEB-INF/classes/changelog/db.changelog-master.xml

pathToChangelog参数应该简单地为changelog/db.changelog-master.xml

实际上,这似乎是maven-war-plugin复制的资源的默认目标位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65002003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档