2017-10-19 6 views
0

私はJava Springアプリケーション+ hibernate +リレーショナルデータベース(編集:PostgreSQL、MySql、Oracleをサポートする必要があります)で作業しています。リキベースのJSONコンテンツを使用したデータベースのリファクタリング

私たちのテーブルの中には、JSONとしてシリアル化されたオブジェクトを格納するものがあります。

私たちは変更を管理するためにliquibaseを使用しますが、JSONに影響を与える変更については、何をすべきか分かりません。

このタイプのデータセットをリファクタリングする方法を教えてください。

が、私はこのPOJOをシリアライズ想像:

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

をその後、我々はそれを変更:

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

どのように私は、このシナリオを移行するだろうか?

+0

Serializableにシリアル化することを意味する場合は、Serializableを実装し、serializeObjectを実装して、削除されたフィールドをスキップします。 JSONを実行している場合も同様のことが可能です –

答えて

2

JSONシリアライゼーションはDBベンダー固有の機能なので、Liquibase xmlの構文ではサポートされていません。あなたが行うことができるのは、<sql>タグを使用するネイティブSQLです。

次に、シリアル化されたオブジェクトをPostgreSQL json functionsを使用してPostgreSQL jsonbタイプとして保存する場合。

普通の文字列として格納している場合は、より難しいでしょうstring manipulationsする必要があります。

+0

Postgresql、MySql、Oracle(クライアントが望むもの)をサポートする必要があります。 – Saita

関連する問題