本文将详细介绍如何将 Dify 从 v0.15.3 升级到最新的 v1.0.0 版本。升级过程包括从版本切换、Docker 部署、插件迁移到数据库更新的每一个步骤,确保你可以顺利完成迁移,并避免常见的升级问题。无论你是第一次接触 Dify,还是已有现有部署,本指南都会帮助你顺利升级到最新版。
针对环境
Linux docker 安装
备份数据
- 备份 docker compose:
cp docker-compose.yaml docker-compose.yaml.$(date +%Y%m%d%H%M%S).bak
- 备份数据:
cp docker-compose.yaml docker-compose.yaml.$(date +%Y%m%d%H%M%S).bak
- 推荐项目停止后备份
切换分支
- 查看自己是否修改了docker-compose.yml
- git status 可以查看自己做了哪些文件的修改
- 根据自己情况舍弃或暂存
- 同步所有远程tag:
git fetch --tags
- 查看tags:
git tag
- 切换到指定tag:
git checkout tags/
1.0.0- 代码都以暂存或提交
暂停服务
- 在dify/docker 目录下
- docker compose -p dify down
- 如果启动时没有指定-p : docker compose down
启动服务
- docker compose -p dify up -d
- 输出下面日志:
[root@localhost docker]# docker compose -p dify up -d
[+] Running 12/12
✔ Network dify_default Created 0.1s
✔ Network dify_ssrf_proxy_network Created 0.0s
✔ Container dify-web-1 Started 1.0s
✔ Container dify-db-1 Started 0.9s
✔ Container dify-pgvector-1 Started 0.9s
✔ Container dify-plugin_daemon-1 Started 1.1s
✔ Container dify-redis-1 Started 0.9s
✔ Container dify-ssrf_proxy-1 Started 1.2s
✔ Container dify-sandbox-1 Started 1.2s
✔ Container dify-worker-1 Started 1.7s
✔ Container dify-api-1 Started 1.6s
✔ Container dify-nginx-1 Started 2.2s
注意事项
启动时会下载三个镜像:为了减少对生产环境的影响,可以提前下载好
- langgenius/dify-web:1.0.0
- docker pull langgenius/dify-web:1.0.0
- langgenius/dify-api:1.0.0
- docker pull langgenius/dify-api:1.0.0
- langgenius/dify-plugin-daemon:0.0.3-local
- docker pull langgenius/dify-plugin-daemon:0.0.3-local
数据迁移
进入到容器内
- 新版本启动后的日志如下:
[root@localhost docker]# docker compose -p dify up -d
[+] Running 12/12
✔ Network dify_default Created 0.1s
✔ Network dify_ssrf_proxy_network Created 0.0s
✔ Container dify-web-1 Started 1.0s
✔ Container dify-db-1 Started 0.9s
✔ Container dify-pgvector-1 Started 0.9s
✔ Container dify-plugin_daemon-1 Started 1.1s
✔ Container dify-redis-1 Started 0.9s
✔ Container dify-ssrf_proxy-1 Started 1.2s
✔ Container dify-sandbox-1 Started 1.2s
✔ Container dify-worker-1 Started 1.7s
✔ Container dify-api-1 Started 1.6s
✔ Container dify-nginx-1 Started 2.2s
- docker 进入到 worker 或 api 容器内
- docker exec -it dify-worker-1 bash
运行数据迁移的脚本
- 提取当前环境的插件
- poetry run flask extract-plugins –workers=20
- 安装插件
- poetry run flask install-plugins –workers=2
- 数据库升级
- poetry run flask db upgrade
- 执行数据迁移
- poetry run flask migrate-data-for-plugin
运行完上面的流程后,命令行升级的工作就处理完了,下面需要在dify web 上配置
dify web 插件配置
此时系统存在的问题:
- 知识库不可用 (系统默认的embedding模型没有设置)
- Agent 绑定的自定义工具不可用 (可能是工具迁移ID变更了)
- 系统供应商都丢失了。

安装模型供应商
- 安装自己之前绑定的供应商重新安装模型即可
- 安装好之前配置的模型供应商,对应的配置应该会回归不需要重新设置密钥。

- 此时解决的问题:
- 模型供应商有了 ✅
- 知识库的Embedding模型会恢复 ✅
- 此时存在的问题:
- Agent绑定的工具不可用,下面修复Agent绑定的工具:
Agent工具重新配置
- 重新添加自定义工具
- 删除失效的工具

- 测试Agent
- 没问题就发布