现象
用户将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完成。
可能原因
升级脚本在执行表迁移流程时,检测到对应旧表中存在数据,无法自动完成数据迁移操作,因此提示需手动处理对应迁移任务。
排查步骤
- 查看FastGPT的初始化日志,确认是否出现类似"[表名] 中有数据,无法自动将 [旧表名] 迁移到 [新表名],请手动操作"的提示信息。
- 登录FastGPT所使用的PostgreSQL数据库,检查对应旧表与新表的数据存储状态。
- 核对需要手动处理的迁移表,包括issue中提及的dataset.collections、dataset.datas、app.versions对应的迁移场景。
解决与验证
- 备份需要处理的旧表与新表的数据,避免操作失误导致数据丢失。
- 将旧表中的数据迁移至对应的新表中,例如将dataset.collections的数据导入dataset_collections表。
- 重新执行FastGPT的初始化流程,或重启服务,查看初始化日志是否不再出现无法自动迁移的提示。
- 验证数据库中对应新表包含完整数据,FastGPT服务可以正常启动并使用。