故障排查GitHub issue3 分钟阅读排错/错误码

解决FastGPT私有部署创建知识库时的数据库字段与索引报错问题

用户在私有部署FastGPT时,创建知识库会弹出报错“error: column \"collectionid\" does not exist”。

现象

用户在私有部署FastGPT时,创建知识库会弹出报错“error: column \"collectionid\" does not exist”。查看docker-compose日志可发现两条核心报错:一是fastgpt | init pg error error: access method \"hnsw\" does not exist,报错栈信息显示错误来自pg-pool库以及Next.js服务端的chunk文件;二是后续出现`column \"collectionid\" does not exist的报错,同样带有对应运行时的栈追踪信息,最终在日志中标记[ERROR]: 2023-11-03 13:23:11: response error: column \"collection_id\" does not exist`。

可能原因

日志中的两个报错对应两类核心问题:一是access method \"hnsw\" does not exist,说明当前PostgreSQL环境缺少hnsw索引方法的支持;二是column \"collection_id\" does not exist,说明知识库关联的collection表未正确创建对应的字段,大概率是数据库初始化流程未正常完成,导致表结构未完全生成。

排查步骤

  1. 进入FastGPT部署对应的PostgreSQL容器,执行数据库登录命令,需按实际部署的数据库配置替换用户名、数据库名等连接参数。
  2. 执行查询语句,检查当前数据库是否已加载hnsw索引所需的依赖,以及collection表是否包含collection_id字段。
  3. 查看FastGPT的启动日志,确认数据库初始化流程是否正常完成,是否存在初始化失败的相关提示。
  4. 对比FastGPT部署包中附带的数据库初始化SQL脚本,确认当前数据库的表结构与字段是否匹配。

解决与验证

针对排查出的问题分别处理:若hnsw索引依赖缺失,需执行FastGPT部署包中附带的数据库初始化SQL脚本,加载所需的索引依赖;若collection_id字段缺失,需重新执行完整的数据库初始化流程,确保所有表结构与字段正确创建。 处理完成后,重启FastGPT服务,重新尝试创建知识库,确认页面不再弹出报错。查看docker-compose日志,确认无access method \"hnsw\" does not existcolumn \"collection_id\" does not exist相关报错,即验证问题已解决。

来源:FastGPT GitHub issue