2014-09-10 34 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文件,以便與數據庫一起使用。