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

Liquibase识别到CSV文件却报文件不存在异常求助

解决Liquibase导入CSV时误将字段内容识别为文件路径的问题

问题根源

Liquibase错误把CSV里search_terms字段的内容当成文件路径查找,本质是CSV解析异常导致的——你的search_terms包含空格、非ASCII匈牙利语字符,可能还有逗号这类分隔符,且未正确用引号包裹,再加上编码不匹配,导致Liquibase解析字段时错乱,把字段内容误判为文件路径。

具体修复步骤

  • 修正CSV格式,用引号包裹特殊字段
    所有包含空格、非ASCII字符、逗号的字段值,必须用双引号"包裹。比如你的CSV应该改成:

    id,category_id,name,search_terms
    1,1,"会计服务","számlakezelés Könyvelő Könyvelő szolgáltatás Könyvelői szolgáltatások Professzionális könyvelő Vállalkozás könyvelése Adótanácsadás Pénzügyi szakember Üzleti könyvelés Könyvelési tanácsadás Könyvelői szolgáltatások CECCAR SAGA PFA könyvelés SRL könyvelés TVA"
    
  • 指定CSV编码
    因为包含非ASCII字符,在loadData标签里显式指定UTF-8编码,避免解析乱码:

    <changeSet id="Load data from CSV file Service" author="apal" >
        <loadData tableName="service" file="liquibase/data/services.csv" encoding="UTF-8">
            <column name="id" header="id" />
            <column name="fk_category_id" header="category_id"/>
            <column name="name" header="name" />
            <column name="search_terms" header="search_terms" />
        </loadData>
    </changeSet>
    
  • 显式启用引用值解析
    部分Liquibase版本对引号包裹的字段识别不灵敏,加上quotedValue="true"确保解析正确:

    <loadData tableName="service" file="liquibase/data/services.csv" encoding="UTF-8" quotedValue="true">
        <!-- 列配置 -->
    </loadData>
    
  • 统一CSV行尾格式
    用文本编辑器(比如Notepad++)把CSV的行尾格式改成LF(Unix格式),避免跨平台解析时出现行识别错误。

验证

修改后先打开CSV确认格式无误,再执行Liquibase迁移,即可解决该异常。

内容的提问来源于stack exchange,提问作者Andor Pál

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 18:05:57