JHipster-Liquibase:如何上传图像文件 blob?

JHipster-Liquibase: How to upload an Image file blob?

给定一个包含以下列的 table:

<column name="image" type="longblob">
    <constraints nullable="true" />
</column>
<column name="image_content_type" type="varchar(255)">
    <constraints nullable="true" />
</column>

如何从文件上传图像,例如MyImage.jpeg?底层数据库是 PostgreSQL。

以下 changeSet 满足了我的需求:

    <changeSet id="632342634534534e53" author="developer">
    <update schemaName="public"
            tableName="my_table">
        <column name="image" type="longblob" valueBlobFile="../../../images/1.MyImage.jpg"/>
        <column name="image_content_type" type="varchar(255)" value="image/jpeg"/>
        <where>id = 1</where>
    </update>
    </changeSet>

这是图像的路径:

/src/main/resources/images

这是更新日志的路径:

/src/main/resources/config/liquibase/changelog/MyChangelog.xml

我有一个类似的问题,但在我的情况下,只要列类型是 OID 而不是 Blob (postgres 12.x)

所以我得到了下面的解决方案,它使用 computedValue 和 postgres 的函数将 Base64 图像转换为 OID。

 <insert tableName="IMAGES">
        <column name="image_id" valueSequenceNext="image_id_seq"/> 
        <column name="name" value="some image name"/>
        <column name="content" valueComputed="lo_from_bytea(0, decode('DLxmEfVUC9CAmjiNyVphWw==', 'base64'))"/>
    </insert>

希望对大家有所帮助!