Liquibase校验和验证失败

Tan*_*moy 7 liquibase

Liquibase (3.5.1)在Springboot应用程序中使用.我正在使用基于SQL的更改日志文件.添加新的更改集最终显示先前更改集的校验和验证错误.

初始更改日志文件 -

--liquibase formatted sql
--changeset tanmoy:1
create table serviceInstances (
    serviceId varchar(60),
    orgId  varchar(60),
    spaceId varchar(60),
    primary key (serviceId,orgId)
);
Run Code Online (Sandbox Code Playgroud)

添加这样的新变更集时 -

--changeset tanmoy:2
create table serviceBindings (
    bindingId varchar(30) primary key,
    serviceId varchar(30),
    appId varchar(30),
    timeStamp BIGINT
);
Run Code Online (Sandbox Code Playgroud)

此错误日志导致迁移失败 -

Caused by: liquibase.exception.ValidationFailedException: Validation Failed:
     1 change sets check sum
          classpath:/db/changelog/db.changelog-master.sql::1::tanmoy was: 7:d15516f48de6531d1727cca8c56ec95a but is now: 7:3c7718f34f78701e0d2cadbf8278c1fa

    at liquibase.changelog.DatabaseChangeLog.validate(DatabaseChangeLog.java:266) ~[liquibase-core-3.5.1.jar:na]
    at liquibase.Liquibase.update(Liquibase.java:210) ~[liquibase-core-3.5.1.jar:na]
    at liquibase.Liquibase.update(Liquibase.java:192) ~[liquibase-core-3.5.1.jar:na]
    at liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:434) ~[liquibase-core-3.5.1.jar:na]
    at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:391) ~[liquibase-core-3.5.1.jar:na]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]
    ... 16 common frames omitted
Run Code Online (Sandbox Code Playgroud)

不明白为什么先前更改集的校验和已更改且未经过验证.是因为我在更改日志文件中添加了一个新的更改集吗?如果是,那么我该如何添加新的更改集?

小智 1

在流程层面,所有流程都完成了incrementally。例如,当我们创建一个表并想要对表进行更改时,我们会给您一个新的增量编号。有了这个数字,我们就可以确定changes我们所创造的产品的产量。这就像你在你的问题中添加了一些新的东西。因此,您需要增加文件id中的liquibase.xml。如果您对当前图表进行了更改,请按以下步骤操作。

<changeSet id="73" author="fcelik">
    <comment>This change adds to customer_order table.</comment>
    <addColumn tableName="customer_order">
        <column name="owner_id" type="BIGINT">
            <constraints nullable="false"/>     
        </column>  
    </addColumn>
</changeSet>
Run Code Online (Sandbox Code Playgroud)

您的文件必须是与您的liquabase.xml. 您想要在创建文件之间执行什么操作(通常是跟踪增量路径。)。例如,我在customer_order此处的表中添加了一个新列。<addColumn>使用标签时请注意。