Dify迁移流程(全部内容迁移,指定账户迁移)
自己在工作中因为涉及到对dify的迁移问题,于是自己根据网上的资料和自己工作的需求实现了两种数据迁移方式。
自己在工作中因为涉及到对dify的迁移问题,于是自己根据网上的资料和自己工作的需求实现了两种数据迁移方式。
环境:
1.完全迁移
顾名思义就是将项目A的账号a下的所有数据都迁移到项目B中
此该过程很简单,只需要将docker目录下的volume打包然后放到新的项目目录下解压即可。
具体流程请参考
社区版dify数据迁移(比较全面)_dify如何迁移-CSDN博客
环境要求
-全ubuntu系统或者 windows+wsl系统
- Docker
- python
- 已运行的Dify Docker环境
- 两个dify项目的版本一致
- 需要赋予迁移脚本权限,可以使用chmod命令。
- 建议提前做好数据备份。
账号迁移脚本
下载链接:
通过网盘分享的文件:dify迁移脚本
链接: https://pan.baidu.com/s/1AVQksozFDjQEVGcOXEg0Tw?pwd=e8ep 提取码: e8ep
导出数据:
- step_by_step_migration.sh 检测环境
- step2_list_accounts.sh 查看账户信息
- step3_export_account.sh <email> 导出账户数据
导入数据:
- universal_migration.sh 导入数据的脚本
- cleanup_account 删除指定账户的脚本
2.账号数据导出。
有的时候我们可能不需要将整个项目都迁移,有的时候我们只是想迁移整个项目下的某的用户的数据,于是我结合cursor和自己的经验捣鼓出了基于账号迁移的方法,并将他们打包为shell脚本。
主要目标:实现dify的账号数据迁移。 通过shell脚本实现一键迁移
数据导出的时候需要使用docker运行需要导出数据的项目,同时将数据导出脚本放在 dify/docker目录下运行。
2.1迁移流程:
数据导出 → JSON文件 → 解析处理 → 数据验证 → 数据库导入 → 结果验证
2.2 数据导出
第1步:环境准备
bash step_by_step_migration.sh
作用 :
- 检查Docker和Python环境
- 验证Dify服务状态
- 安装Python依赖
- 创建数据库配置文件
- 测试数据库连接
第二布 查看账户信息
bash step2_list_accounts.sh
作用:列出该账号下所有的数据, 可用的命令:
bash step2_list_accounts.sh- 列出所有账户bash step2_list_accounts.sh get_details <email>- 查看特定账户详情bash step2_list_accounts.sh check_email <email>- 检查账户是否存在
第三步 导出账户数据
bash step3_export_account.sh <email>
这里的<email>替换为自己需要导出的账号邮箱即可,将生成的文件复制到目标文件的docker目录下即可。
导出的数据列表:

3.数据导入
数据文件要求放在新项目的docker目录下,其中export_folder_name为我们导出的数据文件。数据导入的时候需要使用docker运行需要导入数据的项目,同时将数据导入脚本放在 dify/docker目录下运行
命令:
bash universal_migration.sh export_folder_name
- 支持完整的Dify账户数据迁移
- 自动检测可用的数据文件
- 智能处理数据依赖关系
账户数据 (accounts)信息:
- ✅ 租户数据 (tenants)
- ✅ 租户账户关联 (tenant_account_joins)
- ✅ 应用数据 (apps)
- ✅ 知识库数据 (datasets)
- ✅ 知识库处理规则 (dataset_process_rules)
- ✅ 文档数据 (documents)
- ✅ 文档分段数据 (document_segments)
- ✅ 工作流数据 (workflows)
本人对与dify源码这一块是还在研究中,如果有问题,欢迎留言讨论。
更多推荐
所有评论(0)