2014-09-10 76 views
1

我们刚开始在我们的商店使用liquibase。我们使用PostgreSQL 9.3Blob和Liquibase generateChangeLog

我们正在尝试使用

liquibase --diffTypes=data generateChangeLog 

创造我们的activitii表的更新日志。

这些表使用bytea列来存储PNG数据。但是,当我们运行generateChangeLog时,来自liquibase的值不是列中的值。相反,得到这个。

<insert tableName="act_ge_bytearray"> 
     <column name="id_" value="148802"/> 
     <column name="rev_" valueNumeric="1"/> 
     <column name="name_" value="image/jpeg"/> 
     <column name="deployment_id_"/> 
     <column name="bytes_" value="[[email protected]"/> 
     <column name="generated_"/> 
    </insert> 

bytes_中的实际数据是PNG文件的二进制表示。我不会在这里粘贴,因为它相当长,但正如你所看到的,liquibase不会复制正确的数据。

有没有办法解决这个问题,以便generateChangeLog返回实际存储在bytea列中的内容?

感谢您的任何帮助。

+0

“相反,我们正在得到这个”。得到什么?请显示确切的输出。 – 2014-09-11 02:11:54

回答

0

Liquibase目前不能很好地处理blob内容,无论是使用generateChangeLog还是通过标准标记。部分原因是因为不同的数据库如何处理它们差异很大。

您最好的方法是使用generateChangeLog输出作为起点,并将其修改为通过块加载BLOB文件,以便与数据库一起使用。