![](/img/trans.png)
[英]liquibase.exception.ChangeLogParseException: ChangeLogFile does not exists
[英]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.