2017-10-19 7 views
0

Java Spring 애플리케이션 + 최대 절전 모드 + 관계형 데이터베이스 (편집 : PostgreSQL, MySql 및 Oracle을 지원해야 함)로 작업하고 있습니다.liquibase에서 JSON 컨텐츠로 데이터베이스 리팩토링

일부 테이블에는 JSON으로 직렬화 된 객체가 저장됩니다.

우리는 변경 사항을 관리하기 위해 liquibase를 사용하지만, JSON에 영향을 미치는 변경 사항에 관해서는 우리는 무엇을해야할지 모릅니다.

이 유형의 데이터 세트를 어떻게 리팩터링 하시겠습니까?

class POJO { 
    String name 
    Date someDate 
    Double someDouble 
... 

그런 다음 우리가 그것을 변경 :

class POJO { 
    String name 
    Date someDateButAnotherName 
    String aNewField 
    //Double someDouble <-- deleted 
... 

가 어떻게이 시나리오를 마이그레이션 할 수

내가이 POJO를 직렬화 상상?

+0

Serializable로 직렬화하는 것을 의미하는 경우 Serializable을 구현하고 serializeObject를 구현하여 삭제 된 필드를 건너 뛸 수 있습니다. JSON을 수행하는 경우 비슷한 점이 있습니다. –

답변

2

JSON 직렬화는 DB 공급 업체 고유 기능이므로 Liquibase xml 구문에서 지원하지 않습니다. 당신이 할 수있는 것은 네이티브 SQL <sql> 태그를 사용하는 것입니다.

그런 다음 직렬화 된 객체를 PostgreSQL json functions을 사용하는 PostgreSQL jsonb 유형으로 저장하는 경우.

일반 문자열로 저장하는 경우 더 까다 롭습니다 string manipulations해야 할 것입니다.

+0

Postgresql, MySql 및 Oracle (클라이언트가 원하는 모든 것)을 지원해야합니다. – Saita