我试图将int列修改为varchar,但是它会产生很多错误,从这里开始。
@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;
}这是域中的列。这是明灯。
这是枚举
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;
}
}这是液基糖果
<column name="status" type="INT"/>我试着改变这里。或者我在20160616145216里面加了这个
<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的未知名称值
此外,
当我做完这件事之后
<
modifyDataType
columnName="status"
newDataType="varchar(255)"
tableName="merchant"/>它仍然不能转换为varchar。
发布于 2016-08-15 15:25:24
你似乎已经修改了一个已由Liquibase执行的液化基变更集。不要这样做:恢复到以前的版本,并添加一个新的变更集。
然后添加另一个changeSet (或任务),将该列中的所有0转换为“活动”,将该列中的所有1转换为“被动”。
发布于 2021-12-29 17:01:23
我也面临着同样的问题。
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。
update DATABASECHANGELOG set MD5SUM = '8:e353c8335afd112dfef95e3e95562f56'
where MD5SUM = '8:d9bea6afc2902ce60cdfa54e82d248c4'; 在这次更新之后,它解决了我的问题,但是,我添加的列--最后一列--不在表中。所以我需要手动添加。
https://stackoverflow.com/questions/38956219
复制相似问题