I tried to modify int column to varchar but it gives a lot of errors starting with this.
@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;
}
this is the column in domain. it is enum.
this is enum
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;
}
}
this is liquibase confg
<column name="status" type="INT"/>
i tried to change here. or i added this inside 20160616145216
<modifyDataType
columnName="status"
newDataType="varchar(255)"
tableName="merchant"/>
but it did not work.
2 change sets check sum |
classpath:config/liquibase/changelog/20160616145216_create_merchant.xml::1466077959485-1:: (generated) is now: 7:5fb40924426396399804bb2cb7f74852
|
classpath:config/liquibase/changelog/20160720101800_load_data.xml::0000000000001-2:: (generated) is now: 7:aa0084f69ca5301ef48cfb97beb41582
| | | liquibase.exception.ValidationFailedException: Validation Failed: f | 2 change sets check sum |
classpath:config/liquibase/changelog/20160616145216_create_merchant.xml::1466077959485-1:: (generated) is now: 7:5fb40924426396399804bb2cb7f74852
|
classpath:config/liquibase/changelog/20160720101800_load_data.xml::0000000000001-2:: (generated) is now: 7:aa0084f69ca5301ef48cfb97beb41582
| | at liquibase.changelog.DatabaseChangeLog.validate(DatabaseChangeLog.java:215) | at liquibase.Liquibase.update(Liquibase.java:208) | at liquibase.Liquibase.update(Liquibase.java:192) | at liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:434) | at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:391) | at net.infoowl.fraud.config.liquibase.AsyncSpringLiquibase.initDb(AsyncSpringLiquibase.java:63) 1 | at net.infoowl.fraud.config.liquibase.AsyncSpringLiquibase.lambda$afterPropertiesSet$0(AsyncSpringLiquibase.java:49) | at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) | at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) | at java.lang.Thread.run(Thread.java:745)
also
rror: Unknown name value [0] for enum class [net.infoowl.fraud.domain.util.MerchantStatus]; nested exception is java.lang.IllegalArgumentException: Unknown name value [0] for enum class [net.infoowl.fraud.domain.util.MerchantStatus]
furthermore
also when i do diff after this
<
modifyDataType
columnName="status"
newDataType="varchar(255)"
tableName="merchant"/>
it still doesnot convert to varchar
You seem to have modified a liquibase changeset that has already been executed by Liquibase. Don't do that: revert to the previous version, and add a new changeset.
Then add another changeSet (or task) transforming all the 0 in that column to 'ACTIVE', and all the 1 in that column to 'PASSIVE'.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With