首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Liquibase liquibase.exception.ValidationFailedException:验证失败:

Liquibase liquibase.exception.ValidationFailedException:验证失败:
EN

Stack Overflow用户
提问于 2016-08-15 13:41:22
回答 2查看 14.6K关注 0票数 2

我试图将int列修改为varchar,但是它会产生很多错误,从这里开始。

代码语言:javascript
复制
    @NotNull
    @Column(nullable = false)
    @Enumerated(value = EnumType.STRING)
    private MerchantStatus status;

   public MerchantStatus getStatus() {
        return status;
    }

    public Merchant setStatus(MerchantStatus status) {
        this.status = status;
        return this;
    }

这是域中的列。这是明灯。

这是枚举

代码语言:javascript
复制
public enum MerchantStatus {
    ACTIVE("merchant.status.active"),
    PASSIVE("merchant.status.passive");

    private String key;

    MerchantStatus(String key) {
        this.key = key;
    }

    public String getKey() {
        return key;
    }
}

这是液基糖果

代码语言:javascript
复制
<column name="status" type="INT"/>

我试着改变这里。或者我在20160616145216里面加了这个

代码语言:javascript
复制
<modifyDataType
                        columnName="status"
                        newDataType="varchar(255)"
                        tableName="merchant"/>

但这不起作用。

2更改集检查和\x 现在生成的classpath:config/liquibase/changelog/20160616145216_create_merchant.xml::1466077959485-1::是: 7:5fb40924426396399804bb2cb7f74852 | classpath:config/liquibase/changelog/20160720101800_load_data.xml::0000000000001-2::(生成)现在是:aa0084f69ca5301ef48cfb97beb 41582 liquibase.exception.ValidationFailedException:验证失败:F=2更改集,检查校验和 现在生成的classpath:config/liquibase/changelog/20160616145216_create_merchant.xml::1466077959485-1::是: 7:5fb40924426396399804bb2cb7f74852 | classpath:config/liquibase/changelog/20160720101800_load_data.xml::0000000000001-2::(生成)现在是:aa0084f69ca5301ef48cfb97beb 41582 在liquibase.changelog.DatabaseChangeLog.validate(DatabaseChangeLog.java:215),在liquibase.Liquibase.update(Liquibase.java:208),在liquibase.Liquibase.update(Liquibase.java:192),在liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:434),在liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:391),在net.infoowl.fraud.config.liquibase.AsyncSpringLiquibasenet.infoowl.fraud.config.liquibase.AsyncSpringLiquibase.lambda$afterPropertiesSet$0(AsyncSpringLiquibase.java:49)、java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)、java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)、java.lang.Thread.run(Thread.java:745)的.initDb(AsyncSpringLiquibase.java:63)

也是

rror:枚举类net.infoowl.fraud.domain.util.MerchantStatus的未知名称值;嵌套异常为java.lang.IllegalArgumentException:枚举类net.infoowl.fraud.domain.util.MerchantStatus的未知名称值

此外,

当我做完这件事之后

<

代码语言:javascript
复制
modifyDataType
                        columnName="status"
                        newDataType="varchar(255)"
                        tableName="merchant"/>

它仍然不能转换为varchar。

EN

回答 2

Stack Overflow用户

发布于 2016-08-15 15:25:24

你似乎已经修改了一个已由Liquibase执行的液化基变更集。不要这样做:恢复到以前的版本,并添加一个新的变更集。

然后添加另一个changeSet (或任务),将该列中的所有0转换为“活动”,将该列中的所有1转换为“被动”。

票数 6
EN

Stack Overflow用户

发布于 2021-12-29 17:01:23

我也面临着同样的问题。

代码语言:javascript
复制
  config/liquibase/changelog/20211227120229_added_entity_Product.xml::20211227120229-1-data::jhipster was: 8:d9bea6afc2902ce60cdfa54e82d248c4 but is now: 8:e353c8335afd112dfef95e3e95562f56

我使用jHipster创建实体(db表)及其相关屏幕和其他文件。这是一个很好的处理方法。我修改了一个现有的表结构,并在其中添加了新列。从那以后,我开始收到这个错误。我没有手动修改液化基xml文件。这是由杰普斯特剧本完成的。对我来说,解决方案是使用下面的命令手动修改表DATABASECHANGELOG中的MD5SUM。

代码语言:javascript
复制
update DATABASECHANGELOG set MD5SUM = '8:e353c8335afd112dfef95e3e95562f56'
where MD5SUM = '8:d9bea6afc2902ce60cdfa54e82d248c4'; 

在这次更新之后,它解决了我的问题,但是,我添加的列--最后一列--不在表中。所以我需要手动添加。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38956219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档