Dify 工作流配置备份需同时执行数据库全量备份与 DSL/JSON 文件导出,数据库保障用户数据与状态,DSL 文件保障逻辑结构可迁移。此方案适用于自托管 Docker 部署及云端 API 接入场景,核心风险在于版本不一致导致导入失败。
先说结论:单一备份方式无法覆盖所有风险,必须组合数据库快照与应用配置导出。
- 适合:私有化部署服务器迁移、版本升级前、误操作紧急回滚
- 先准备:服务器 SSH 权限、Dify API Key、足够存储空间的备份目录
- 验收:在新环境成功导入 DSL 文件且工作流状态显示正常
命令速用版
以下命令适用于 Docker 部署环境,直接复制粘贴到服务器终端执行。
# 1. 备份 PostgreSQL 数据库(核心配置与用户数据)
docker exec -t docker-postgres-1 pg_dumpall -U postgres > /usr/local/dify_backup.sql
# 2. 备份上传的文件(知识库原文档)
tar -czf volumes_backup.tar.gz docker/volumes
# 3. 导出工作流 DSL 配置(通过 API)
curl -H "Authorization: Bearer <API_KEY>" -X GET "https://<DIFY_HOST>/api/workflows/<WORKFLOW_ID>/export" -o workflow_backup.yaml为什么会这样
Dify 的数据存储架构将运行状态与逻辑定义分离,仅备份其中一项无法完整恢复业务。
数据库(PostgreSQL)存储了应用定义、用户权限、对话日志及知识库索引,这是系统运行的“状态数据”。而工作流的具体节点逻辑、提示词模板及分支判断通常以 DSL(领域特定语言)或 JSON 格式存在,这部分属于“逻辑数据”。若只备份数据库,更换服务器时可能因环境差异导致配置漂移;若只导出 DSL,则丢失用户历史数据与权限设置。因此,双重备份是防止数据丢失的必要条件。
分步处理
按顺序执行以下步骤,确保数据完整性与可恢复性。
步骤 1:停止服务(可选但推荐)
在备份数据库前停止写入操作,避免数据不一致。
命令:docker compose stop
步骤 2:执行数据库备份
使用 pg_dumpall 导出所有数据库对象,包含 Dify 所需的所有表结构与新数据。
检查点:确认生成的 .sql 文件大小不为 0,且无报错信息。
步骤 3:备份卷数据
打包 docker/volumes 目录,确保知识库上传的 PDF、Word 等原文件不丢失。
检查点:验证压缩包可正常解压。
步骤 4:导出工作流 DSL
通过 Dify 后台或 API 导出当前工作流的 YAML/JSON 文件。
检查点:打开文件确认包含 nodes 与 edges 定义字段。
步骤 5:恢复数据
在新服务器安装同版本 Dify,停止服务后导入 .sql 文件,恢复 volumes 目录,最后通过 API 或界面导入 DSL 文件。
回滚提醒:若恢复后服务无法启动,立即还原旧服务器备份文件。
怎么验证是否生效
备份是否有效取决于能否成功还原并运行,需执行以下验证动作。
1. 完整性检查
查看备份文件日志,确认无“permission denied”或“connection refused”错误。
2. 沙箱还原测试
在测试环境导入备份的 .sql 文件,启动容器后尝试登录后台。
成功标志:能看到原有应用列表且知识库文件可预览。
3. 工作流运行测试
导入 DSL 文件后,手动触发一次工作流运行。
成功标志:节点执行无报错,输出结果符合预期。
常见坑
以下场景容易导致备份失效或恢复失败,操作时需格外谨慎。
版本不匹配
不同版本的 Dify 数据库结构可能存在差异,高版本备份直接导入低版本环境通常会报错。建议备份时记录当前 Dify 版本号。
API 权限不足
导出 DSL 时若 API Key 权限受限,可能无法获取完整配置。确保使用的 Key 拥有应用管理权限。
文件路径变更
恢复 volumes 时若新服务器挂载路径与旧服务器不一致,会导致知识库文件读取失败。需核对 docker-compose.yaml 中的路径映射。
常见问题
备份频率应该设多久一次?
建议数据库每日自动备份,工作流配置在每次修改后手动导出。
迁移服务器时只带数据库够吗?
不够,必须同时迁移 volumes 目录中的文件,否则知识库内容会丢失。
恢复后登录不上怎么办?
检查 .env 配置文件中的密钥与端口设置是否与新服务器环境一致。
参考来源
- AI——Dify 数据备份与迁移
- 紧急规避配置丢失风险!Dify DSL 备份与恢复必须掌握的 5 个关键点
- 数据丢了怎么办,Dify 备份频率你真的设对了吗?-CSDN 博客
- Dify 工作流备份与恢复:如何用 JSON 实现一键迁移?
- 私有化 Dify 部署必看 (数据备份黄金法则)-CSDN 博客
- 数据永不丢失:Dify.AI 备份恢复全攻略
- 团队协作必看:Dify 工作流 JSON 导出导入,避免配置丢失的 3 个关键步骤