You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确配置Liquibase insert中valueBlobFile的文件路径?

解决Liquibase执行insert时BLOB资源找不到的问题

问题原因

Liquibase解析valueBlobFile的路径基准是当前变更集文件所在的目录,而非项目根目录或src/main/resources目录。你之前使用的../../../db/changelog/xxx路径是从变更集目录向上跳转三级,与实际文件位置不符,导致资源找不到。

正确路径配置方案

根据你的文件位置(src/main/resources/db/changelog),提供两种可靠的配置方式:

1. 相对路径(基于变更集文件位置)

如果你的变更集XML文件本身就放在src/main/resources/db/changelog目录下,直接使用文件名即可(文件与变更集同目录):

<changeSet author="Krishna" id="insert-3">
    <insert tableName="blob_test">
        <column name="name" value="Name3" />
        <column name="formData" type="longblob" valueBlobFile="dc_form_definition_202304051700.csv-1.data.txt"/>
    </insert>
</changeSet>

若变更集在子目录(比如db/changelog/v1),则使用相对上级目录的路径:

valueBlobFile="../dc_form_definition_202304051700.csv-1.data.txt"

2. Classpath绝对路径(推荐)

使用classpath:前缀直接从src/main/resources根目录定位文件,不受变更集文件位置影响,适配性更强:

<changeSet author="Krishna" id="insert-3">
    <insert tableName="blob_test">
        <column name="name" value="Name3" />
        <column name="formData" type="longblob" valueBlobFile="classpath:db/changelog/dc_form_definition_202304051700.csv-1.data.txt"/>
    </insert>
</changeSet>

内容的提问来源于stack exchange,提问作者Krishna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 12:28:15