int 열을 varchar로 수정하려고했지만이 오류로 시작하는 것이 많습니다.Liquibase liquibase liquibase.exception.ValidationFailedException : 유효성 검사 실패 :
@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;
}
이것은 도메인의 열입니다. enum입니다.
이
이것이 liquibase confg<column name="status" type="INT"/>
여기 변경하려 시도이다 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;
}
}
이다. 또는 이것을 안으로 추가했습니다. 20160616145216
<modifyDataType
columnName="status"
newDataType="varchar(255)"
tableName="merchant"/>
그러나 작동하지 않았습니다.
2 변경 세트 check sum |
클래스 경로 설정/liquibase/변경 로그/20160616145216_create_merchant.xml :: 1466077959485-1 :: 이 (생성) 지금 : 7 : 5fb40924426396399804bb2cb7f74852
|
클래스 경로 설정/liquibase/변경 로그/20160720101800_load_data.xml :: 0000000000001-2 :: (생성) 지금 : 7 : aa0084f69ca5301ef48cfb97beb41582
| | | liquibase.exception.ValidationFailedException : 유효성 검사 실패 : f | 2 세트 변경 체크섬 |
클래스 경로 설정/liquibase/변경 로그/20160616145216_create_merchant.xml :: 1466077959485-1 :: 이 (생성) 지금 : 7 : 5fb40924426396399804bb2cb7f74852
|
클래스 경로 설정/liquibase/변경 로그/20160720101800_load_data.xml :: 0000000000001-2 :: (생성) 지금 : 7 : aa0084f69ca5301ef48cfb97beb41582
| | at liquibase.changelog.DatabaseChangeLog.validate (DatabaseChangeLog.java:215) | liquibase.Liquibase.update (Liquibase.java:208) | liquibase.Liquibase.update (Liquibase.java:192) | at liquibase.integration.spring.SpringLiquibase.performUpdate (SpringLiquib.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) | 또한
rror java.lang.Thread.run (Thread.java:745)에서 알 수없는 이름 값 [0] ENUM 클래스 대 [net.infoowl.fraud.domain.util .MerchantStatus]; 중첩 예외는 입니다. java.lang.IllegalArgumentException : 열거 형에 대해 알 수없는 이름 값 [0] 클래스 [net.infoowl.fraud.domain.util.MerchantStatus 또한
이
<
modifyDataType
columnName="status"
newDataType="varchar(255)"
tableName="merchant"/>
후도 내가 사랑하는 수행 할 때
여전히 doesnot 당신은 liquibase의 변경 집합을 수정 한 것으로 보인다
당신은 이미 Liquibase에 의해 실행 된 liquibase 변경 집합을 수정 한 것 같습니다. 그러지 마십시오 : 이전 버전으로 되돌리고 새로운 changeset를 추가하십시오. –
변경 집합에 유용합니까? 내가이 후 DIFF 수행 할 때 또한 < newDataType = "VARCHAR (255)" TABLENAME = "상인"modifyDataType COLUMNNAME = "상태"/> 는 여전히 doesnot – fff
당신이 무엇을 의미합니까 VARCHAR로 변환? 어떤 일이 발생할 것으로 예상합니까? –