我有一些更新日志文件,当我尝试为它们生成sql文件时,我得到:验证失败异常。
Caused by: liquibase.exception.ValidationFailedException: Validation Failed:
13 change sets check sum
db-changelogs/test1.xml::test-1::rw is now: 7:d41d8cd98f00b204e9800998ecf8427e
问题是我没有对这些文件进行任何更改。我的同事在同一个 git 分支上工作,它非常适合他们。
我已经检查了文本编码和其他一些东西,但它仍然不起作用。我用蚂蚁脚本运行它。
我的数据库更改日志(new-db-changelog.xml):
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
<include file="db-changelogs/testl.xml"/>
</databaseChangeLog>
更改日志(test1.xml):
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd
http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd">
<changeSet id="test-1" author="rem" >
<ext:sqlWrapper context="common-schema">
<![CDATA[
CREATE TABLE common.test(
id bigint NOT NULL,
"name" character varying,
CONSTRAINT test_lb_pkey PRIMARY KEY (id)
);
]]>
</ext:sqlWrapper>
</changeSet>
</databaseChangeLog>
添加属性runOnChange="true"
<changeSet id="test-1" author="rem" runOnChange="true">
我们刚刚发现 3.1.1 在计算校验和时似乎在空格方面有所不同。我们对纯SQL进行了一些更改,我碰巧将其从空格重新格式化为制表符,并且校验和已更改。
也许是这样吗?