在liquibase上使用JSON内容重构数据库

在liquibase上使用JSON内容重构数据库

问题描述:

我正在使用Java Spring应用程序+ hibernate +关系数据库(编辑:我们必须支持Postgresql,MySql和Oracle)。在liquibase上使用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,可以做类似的事情 –

JSON序列化是一个数据库供应商特定的功能,因此它不受Liquibase xml语法支持。你可以做的是使用<sql>标签的原生sql。

然后,如果您使用PostgreSQL json functions将您的序列化对象存储为PostgreSQL jsonb类型。

如果你将它作为纯字符串存储,你将不得不做string manipulations这会更棘手。

+0

我们必须支持Postgresql,MySql和Oracle(可能是客户想要的任何东西)。 – Saita