簡體   English   中英

liquibase.exception.ChangeLogParseException:讀取遷移文件時出錯:找到 2 個與 mychanges.xml 匹配的文件

[英]liquibase.exception.ChangeLogParseException: Error Reading Migration File: Found 2 files that match mychanges.xml

當我嘗試通過以下方式啟動 Liquibase 時:

JdbcConnection liquibaseConnection = new JdbcConnection(connection);

Liquibase liquibase = new Liquibase("mychanges.xml", 
new ClassLoaderResourceAccessor(),liquibaseConnection);

liquibase.update("dev");

當它要更新時,我收到此異常

liquibase.exception.ChangeLogParseException: Error Reading Migration File: Found 2 files that match mychanges.xml

並且是由以下原因引起的:

Caused by: java.io.IOException: Found 2 files that match mychanges.xml

這看起來很奇怪,因為當我查看war文件時,它只包含一個 mychanges.xml

我試過重命名它並將其移動到另一個位置。

我不明白為什么它給我這個例外。 請幫忙

我自己找到的。 拋出的異常不正確。 這實際上意味着無法找到該文件。 這種情況下非常奇怪的例外。

有了這個,我發現我的類路徑有點壞了。

在我的情況下,更新 sql 文件的文件夾路徑中包含非 ASCII 字符(exp:éáű)。 將更新文件移動到僅 ASCII 的文件夾路徑中有效。

這是 Liquibase 4.2.0(2020-11-13 版本)。

[咆哮]

想象一下在 2020 年支持 Unicode。

Liquibase 團隊:

[/咆哮]

我遇到了同樣的問題,並在 ClassLoaderResourceAccessor.java 中找到了以下原因:

Enumeration<URL> resources = classLoader.getResources(path);

因此,您的 xml 必須是類路徑的一部分,而不是文件系統中的路徑或類似的東西。

檢查您的 pom.xml 。您的 pom.xml 或 pom.xml 中的一些未使用的項目可能存在額外的依賴項。 此外,您使用 pom 導入的項目具有相同的數據庫文件名。

我通過從 pom.xml 中刪除額外的依賴解決了這個問題

暫無
暫無

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

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