数据迁移指南
常见场景是在功能强大的实例(例如,带有 GPU)上处理大型知识库,然后将整个 RAGFlow 服务迁移到不同的生产环境(例如,仅 CPU 的服务器)。本指南说明如何使用我们提供的迁移脚本安全地备份和恢复您的数据。
识别您的数据
默认情况下,RAGFlow 使用 Docker 卷来存储所有持久数据,包括您的数据库、上传的文件和搜索索引。您可以通过运行以下命令查看这些卷:
docker volume ls
输出将类似于:
DRIVER VOLUME NAME
local docker_esdata01
local docker_minio_data
local docker_mysql_data
local docker_redis_data
这些卷包含您需要迁移的所有数据。
步骤 1:停止 RAGFlow 服务
在开始迁移之前,您必须停止源机器上所有正在运行的 RAGFlow 服务。导航到项目的根目录并运行:
docker-compose -f docker/docker-compose.yml down
重要:请不要使用 -v 标志(例如,docker-compose down -v),因为这将删除您的所有数据卷。迁移脚本包含检查功能,如果服务正在运行,将阻止您运行它。
步骤 2:备份您的数据
我们提供了一个便捷的脚本,可以将您的所有数据卷打包到一个备份文件夹中。
要快速查看脚本的命令和选项,您可以运行:
bash docker/migration.sh help
要创建备份,请从项目的根目录运行以下命令:
bash docker/migration.sh backup
这将在您的项目根目录中创建一个 backup/ 文件夹,其中包含您数据卷的压缩存档。
您还可以为备份文件夹指定自定义名称:
bash docker/migration.sh backup my_ragflow_backup
这将创建一个名为 my_ragflow_backup/ 的文件夹。
步骤 3:传输备份文件夹
将整个备份文件夹(例如,backup/ 或 my_ragflow_backup/)从您的源机器复制到目标机器上的 RAGFlow 项目目录。您可以使用 scp、rsync 或物理驱动器等工具进行传输。
步骤 4:恢复您的数据
在目标机器上,确保 RAGFlow 服务未运行。然后,使用迁移脚本从备份文件夹恢复您的数据。
如果您的备份文件夹名为 backup/,请运行:
bash docker/migration.sh restore
如果您使用了自定义名称,请在命令中指定它:
bash docker/migration.sh restore my_ragflow_backup
脚本将自动创建必要的 Docker 卷并解包数据。
**注意:**如果脚本检测到目标机器上已存在同名的 Docker 卷,它将警告您恢复将覆盖现有数据,并在继续之前要求确认。
步骤 5:启动 RAGFlow 服务
恢复过程完成后,您可以在新机器上启动 RAGFlow 服务:
docker-compose -f docker/docker-compose.yml up -d
**注意:**如果您之前已经通过 docker-compose 构建了服务,您可能需要按照上述指南为目标机器备份数据,然后运行:
# 在执行以下行之前,请通过 `sh docker/migration.sh backup backup_dir_name` 进行备份。
# !!! 这行 -v 标志将删除原始 docker 卷
docker-compose -f docker/docker-compose.yml down -v
docker-compose -f docker/docker-compose.yml up -d
您的 RAGFlow 实例现在正在运行,包含来自原始机器的所有数据。