我们刚开始在我们的商店使用liquibase。我们使用postgresql 9.3
我们正在尝试使用
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="[B@4d513b99"/>
<column name="generated_"/>
</insert>
以bytes_为单位的实际数据是PNG文件的二进制表示。我不会在这里粘贴相当长的,但正如你所看到的,liquibase不会复制正确的数据。
有没有办法解决这个问题,以便generateChangeLog返回实际存储在bytea列中的内容?
感谢您的帮助。
答案 0 :(得分:1)
Liquibase目前不能很好地处理blob内容,包括generateChangeLog和标准标记。部分原因是因为不同的数据库处理它们的方式差别很大。
您最好的方法是使用generateChangeLog输出作为起点并修改它以通过块加载blob文件,这与数据库一起使用。