结论
该迁移步骤仅适用于部署过低于4.8版本FastGPT的用户。V4.15.0-beta7后工作流保存结构统一使用V2,需先完成V1到V2的迁移,再执行后续V2脏数据清洗。
具体怎么做
- 迁移脚本位置为
projects/app/src/pages/api/admin/dataClean/v1WorkflowToV2.ts,该接口仅用于本次升级迁移,不对外作为OpenAPI接口。 - 先执行默认的dry-run扫描校验模式,仅扫描、转换并校验数据,不写库:
curl -X POST 'https://你的域名/api/admin/dataClean/v1WorkflowToV2' \
-H 'Content-Type: application/json' \
-H 'rootkey: 你的ROOT_KEY' \
-d '{"dryRun":true}'- 确认接口返回的统计结果无误后,修改
dryRun为false执行数据写入:
curl -X POST 'https://你的域名/api/admin/dataClean/v1WorkflowToV2' \
-H 'Content-Type: application/json' \
-H 'rootkey: 你的ROOT_KEY' \
-d '{"dryRun":false}'接口参数说明:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| dryRun | boolean | true | 是否仅扫描验证不写库 |
注意事项
- 迁移时会按
apps.version != 'v2'且type非folder、httpPlugin、toolFolder扫描应用,先处理app_versions再处理apps,避免中断后遗漏历史版本。 - 迁移会将V1节点字段升级为V2格式,例如
moduleId转为nodeId、flowType转为flowNodeType。 - 未知节点类型会兜底为
emptyNode,非法valueType会转为any;缺失node.name时用flowType兜底,缺失input.label时用input.key兜底。 - 写库前会使用
PublishAppBodySchema校验数据,校验失败的文档不会写入,并会记录到接口返回结果中。
来源:FastGPT 官方文档