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

FastGPT从v4.8升级到v4.8.1的数据库迁移报错处理

用户将FastGPT从v4.8升级到v4.8.1后,执行初始化流程时,日志输出包含pg连接成功、初始化PG成功、部分表重命名成功的日志,例如success rename dataset.trainings -> datasettrainings、success rename buffer.rawtexts…

现象

用户将FastGPT从v4.8升级到v4.8.1后,执行初始化流程时,日志输出包含pg连接成功、初始化PG成功、部分表重命名成功的日志,例如success rename dataset.trainings -> datasettrainings、success rename buffer.rawtexts -> bufferrawtexts等。同时出现多条无法自动迁移的提示,具体报错文本包括:datasetcollections 中有数据,无法自动将 dataset.collections 迁移到 datasetcollections,请手动操作;datasetdatas 中有数据,无法自动将 dataset.datas 迁移到 datasetdatas,请手动操作;appversions 中有数据,无法自动将 app.versions 迁移到 appversions,请手动操作。最终初始化请求/api/admin/initv481完成。

可能原因

升级脚本在执行表迁移流程时,检测到对应旧表中存在数据,无法自动完成数据迁移操作,因此提示需手动处理对应迁移任务。

排查步骤

  1. 查看FastGPT的初始化日志,确认是否出现类似"[表名] 中有数据,无法自动将 [旧表名] 迁移到 [新表名],请手动操作"的提示信息。
  2. 登录FastGPT所使用的PostgreSQL数据库,检查对应旧表与新表的数据存储状态。
  3. 核对需要手动处理的迁移表,包括issue中提及的dataset.collections、dataset.datas、app.versions对应的迁移场景。

解决与验证

  1. 备份需要处理的旧表与新表的数据,避免操作失误导致数据丢失。
  2. 将旧表中的数据迁移至对应的新表中,例如将dataset.collections的数据导入dataset_collections表。
  3. 重新执行FastGPT的初始化流程,或重启服务,查看初始化日志是否不再出现无法自动迁移的提示。
  4. 验证数据库中对应新表包含完整数据,FastGPT服务可以正常启动并使用。

来源:FastGPT GitHub issue