kgrag/suzhu-kgrag_migration/migration_guide.md
2026-06-30 13:35:52 +08:00

3.8 KiB
Raw Blame History

kgrag 迁移指南

概述

本目录包含将 kgrag 图谱系统从旧服务器完整迁移到新服务器的脚本。
迁移采用方案A迁移高亮PDF文件 + 批量更新 Neo4j 中的溯源 URL。

迁移前准备

在执行任何脚本前,先修改各脚本顶部的变量配置区。

需要确认的信息

信息 说明 示例
旧服务器 SSH 地址 用于 rsync 拉取文件 root@192.168.0.46
旧服务器 APP 目录 kgrag 部署根目录 /app
新服务器 APP 目录 目标部署根目录 /app
旧服务 BASE URL 写入 Neo4j 的 URL 前缀 http://192.168.0.46:59085
新服务 BASE URL 迁移后对外服务的 URL 前缀 http://192.168.1.100:59085
旧 Neo4j 连接地址 用于导出快照(可选) bolt://192.168.0.46:57687
新 Neo4j 连接地址 用于导入和更新 URL bolt://localhost:7687

执行步骤

步骤 1迁移文件

新服务器上执行:

bash 01_copy_files.sh

该脚本通过 rsync 从旧服务器拉取:

  • /app/files/(原始文档)
  • /app/files/uploads_v1/(高亮注释 PDF溯源链接的实际目标
  • /app/kg_output/(实体关系抽取 JSON
  • kg_snapshot.json(全量快照,含 Embedding
  • 所有代码文件

步骤 2重建 Neo4j 图谱

新服务器上执行:

bash 02_load_neo4j.sh

该脚本调用 batch_kg_build.py --phase load_snapshotkg_snapshot.json 导入新 Neo4j。

注意:此方式不保留节点的 *_timeline 历史字段。
如需完整历史,改用 neo4j-admin database dump/load 做数据库级备份(需停服)。

步骤 3批量更新溯源 URL

新服务器上执行:

python 03_update_neo4j_urls.py

该脚本将 Neo4j 中所有节点 knowledge_source 字段里的旧服务器地址替换为新地址。

步骤 4更新配置文件

新服务器上执行:

bash 04_update_config.sh

该脚本更新 config.pybatch_kg_build.pyapp.py 中的硬编码 IP 地址。

步骤 5验证迁移结果

新服务器上执行:

python 05_verify_migration.py

该脚本检查文件完整性、Neo4j 节点数量、溯源 URL 可访问性。


目录结构说明

迁移完成后,新服务器上的文件布局应与旧服务器一致:

/app/
├── files/                  # 原始文档PDF/DOCX/XLSX等
│   └── uploads_v1/         # 高亮注释 PDF溯源跳转目标
├── kg_output/              # 每个文档的实体关系 JSON断点续跑用
├── kg_snapshot.json        # 全量图谱快照(重建 Neo4j 的输入)
├── fault_wenjian/          # 超时/失败文件记录
├── entity_registry.json    # 动态实体类型注册表
├── tree_data.json          # 树状结构数据
├── config.py               # 模型/服务地址配置(迁移后需修改)
├── app.py                  # FastAPI 主程序
├── batch_kg_build.py       # 批量图谱构建脚本
├── graph_search/           # 图检索模块
├── kg_build/               # 图谱构建模块
└── ...                     # 其他代码模块

常见问题

Q迁移后溯源点击没有跳转到正确页面
A检查步骤3是否执行成功确认新服务的 PREFIX_URLNEW_BASE_URL 一致。

Q01_copy_files.sh 报 Permission denied
A确保新服务器已添加旧服务器的 SSH 公钥或改用密码认证rsync 会提示输入)。

Q02_load_neo4j.sh 报模块找不到?
A先在新服务器上安装依赖pip install -r requirements.txt

Q高亮 PDF 文件很多rsync 很慢?
A可加 --bwlimit=50000(限速 50MB/s避免占满带宽或分批执行。