没有找到dbchangelog-3.2.xsd

  • 本文关键字:xsd dbchangelog-3 liquibase
  • 更新时间 :
  • 英文 :


运行3.2版本出现错误

[WARN] liquibase - schema_reference。4:读取架构文档"http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.2.xsd"失败,因为1)找不到文档;2)文件无法读取;3)文档的根元素不是。

当我寻找http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.2.xsd时,它不在那里,虽然http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd在。

我遇到了这个https://liquibase.jira.com/browse/CORE-1840,我解释说你不需要访问互联网来获取dbchangelog-3.2.xsd。这似乎没有帮助,当互联网可用,但。xsd不在那里。

我已经恢复到3.1,但想知道我的3.2问题的根本原因。

liquibase版本更新到最新版本解决了我的问题

<dependency>
    <groupId>org.liquibase</groupId>
    <artifactId>liquibase-maven-plugin</artifactId>
    <version>3.6.3</version>
</dependency>

我通过在应用程序中分发模式并在本地引用它(相对路径)来解决这个问题。在下面的示例中,我将模式文件与changelog放在同一个文件夹中。

<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog dbchangelog-3.1.xsd">
<!-- all the things -->
</databaseChangeLog>

Liquibase没有在Internet上查找xsd。http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.2.xsd将被替换为Java资源路径

更详细的信息可以在这里找到

我修复了这里发现的问题。

该解决方案仅适用于使用maven-liquibase-plugin的人。您必须使用以下选项-Dprefer.internal.xsd=true运行liquidbase迁移:

mvn -Dprefer.internal.xsd=true liquibase:update

检查changlog.xml文件头是否有xsd文档版本。如果不匹配,将在春季启动时匹配:运行

相关内容

  • 没有找到相关文章

最新更新