簡體   English   中英

Liquibase:從測試鏈接主 yaml 更改日志

[英]Liquibase : link main yaml changelog from test

我想從 src/main/resources.. 在 src/test/resources 中鏈接 yaml 數據庫創建規則,並添加一個帶有示例數據的 chagngelog。

src\\test\\resources\\db\\changelog\\db.changelog-master.yaml :

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

但它不起作用。 所以,錯誤是:Error parsing ../../main/resources/db/changelog/db.changelog-master.yaml

是否有其他選項可以從 main 鏈接主要資源? 這是一個彈簧啟動項目。

錯誤堆棧跟蹤:

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

我建議以不同的方式命名位於測試路徑中的變更日志文件,因為在測試期間, main / test路徑合並為測試套件運行的一個相對路徑。 我懷疑 Liquibase 認為您正試圖遞歸地包含相同的文件。

只需將測試路徑下的db.changelog-master.yaml重命名為db.changelog-master-test.yaml

給出完整路徑而不是../../main/resources/db/changelog/db.changelog-master.yaml編譯器無法解析 .. 格式的路徑。

如果文件存在於類路徑中,則下面足以加載文件,否則提供完整的項目上下文路徑。

db/changelog/db.changelog-master.yaml

我們以這種方式包含 SQL 文件:

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

所以嘗試在開頭添加斜杠。

在我的場合,來自源根的路徑按預期工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM