当前位置: 首页 > 知识库问答 >
问题:

Liquibase:从测试中链接主yaml变更日志

卢鸿彩
2023-03-14

我想从src/main/resources链接yaml数据库创建规则。。在src/test/resources中,再添加一个带有示例数据的chagngelog。

src\test\resources\db\changelog\db。变更日志主机。亚马尔:

databaseChangeLog:
- include:
    file: ../../main/resources/db/changelog/db.changelog-master.yaml
- include:
    file: db/changelog/marketplace/sampleData.yaml

但它不起作用。所以,错误是:错误解析..//main/resources/db/changelog/db。变更日志主机。亚马尔

是否有其他选项将主要资源与主要资源链接起来?这是一个spring boot项目。

错误堆栈跟踪:

Caused by: liquibase.exception.ChangeLogParseException: Error parsing classpath:/db/changelog/db.changelog-master.yaml
at liquibase.parser.core.yaml.YamlChangeLogParser.parse(YamlChangeLogParser.java:84)
at liquibase.Liquibase.getDatabaseChangeLog(Liquibase.java:217)
at liquibase.Liquibase.update(Liquibase.java:190)
at liquibase.Liquibase.update(Liquibase.java:179)
at 

...

Caused by: java.io.FileNotFoundException: class path resource [../../main/resources/db/changelog/db.changelog-master.yaml] cannot be resolved to URL because it does not exist
at org.springframework.core.io.ClassPathResource.getURL(ClassPathResource.java:195)
at liquibase.integration.spring.SpringLiquibase$SpringResourceOpener.getResourcesAsStream(SpringLiquibase.java:504)
at liquibase.util.StreamUtil.singleInputStream(StreamUtil.java:186)
at liquibase.parser.core.yaml.YamlChangeLogParser.parse(YamlChangeLogParser.java:27)
... 52 more

共有3个答案

俞涵涤
2023-03-14

给出完整路径,而不是。//main/resources/db/changelog/db。变更日志主机。yaml编译器无法分析中的路径。。总体安排

如果文件存在于类路径中,则以下内容足以加载该文件,否则请给出完整的项目上下文路径。

db/changelog/db.changelog-master.yaml
魏书
2023-03-14

我们以这种方式包含SQL文件

  - sqlFile:
      encoding: utf8
      path: /db/changelog/schema/schema.sql

所以尽量在开头加上斜杠。

莫承运
2023-03-14

我建议以不同的方式命名位于测试路径中的changelog文件,因为在测试期间,main/test路径被合并到测试套件运行的一个相对路径中。我怀疑Liquibase认为您试图递归地包含同一个文件。

只需将测试路径下的db.changelog-master.yaml重命名为db.changelog-master-test.yaml

 类似资料:
  • 该项目 为了寻找解决方案,我首先使用maven在执行LiquiBase:Update时将变更日志的SVN修订版存储到中。基于修订版号检索变更日志容易出错。 我已经花了一周的时间来寻找一个健壮的解决方案,在谷歌上搜索了几个小时,构建了几个测试用例(使用了适应的父级和具体的POM,部分使用了maven scm插件等等),但没有运气。最初,我计划使用LiquiBase:tag存储文件路径+修订,但只有当

  • 我需要从其他项目模块中提取包含变更集作为maven依赖项的changelog文件。我需要在当前项目中包含其他项目的主变更日志文件(它引用了其中的所有变更集),我将在该文件中执行maven liquibase更新/回滚或spring boot liuqibase设置。有没有办法让它奏效? 但我在设置或运行LiquiBase时出错:LiquiBase.Exception.SetupException:

  • 在生产中,数据库用液基changelog.yaml更新,数据库更新成功。 我们对数据库模式进行了一些更改(作为几个增强功能的一部分),例如创建新表、更改表列和创建约束等。 有没有办法使用最新的数据库架构更改自动更新 changelog.yaml?(需要附加到现有的 YAML 文件中,而不是从 SCRACH 重新创建。 因此对生产过渡数据的影响很小)

  • 问题内容: 在我们的一项测试中,我们将测试 鼠标悬停后的链接(元素)样式更改。 __ 默认情况下,链接具有黑色字体,没有修饰,但是在鼠标上时,字体变为蓝色,并且链接文本带有下划线。这是相关的测试: 问题在于,每10个运行中就有1个运行失败,并显示以下错误消息: 预期’rgba(11,51,60,1)’等于’rgba(42,100,150,1)’。 预期“无”等于“下划线”。 我怀疑它在实际更改之前

  • 我想用liquibase变更集进行模拟数据的集成测试,如何使其不影响真实数据库?我从这里找到了部分想法,但我使用的是springboot,我希望有更简单的解决方案。

  • 我无法从Spring Boot项目的JPA实体生成初始更改日志。我的pom.xml如下: 下面是液化酶。属性文件: 当我运行命令时 它在DB[Full log on Pastebin]的