如何告诉Liquibase在PostgreSQL上将BLOB数据类型映射到BYTEA?
似乎Hibernate人员已经接管并调整了该工具以满足他们的需求:https://liquibase.jira.com/browse/CORE-1863但是,EclipseLink不支持oid,并且该bug似乎仍然是开放的:{{ 3}}
我需要使用EclipseLink,我需要在PostgreSQL中使用blob。我想使用Liquibase,是否有可能让这些东西一起工作?
答案 0 :(得分:14)
您有两种选择。
如果您只需要Postgres,并且不打算支持其他DBMS,只需使用bytea
作为列类型。
未在column tag描述中列为“通用”类型之一的任何数据类型将“按原样”传递到数据库,例如
<createTable tableName="foo">
<column name="id" type="integer"/>
<column name="picture" type="bytea"/>
</createTable>
如果要支持不同的DBMS,可以根据DBMS定义属性:
<property name="blob_type" value="bytea" dbms="postgresql"/>
<property name="blob_type" value="blob" dbms="oracle"/>
然后再
<createTable tableName="foo">
<column name="id" type="integer"/>
<column name="picture" type="${blob_type}"/>
</createTable>