Dify 升级到 1.0版本 操作指南

本文将详细介绍如何将 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
    • 推荐项目停止后备份

切换分支

  1. 查看自己是否修改了docker-compose.yml
    • git status 可以查看自己做了哪些文件的修改
    • 根据自己情况舍弃或暂存
  2. 同步所有远程tag: git fetch --tags
  3. 查看tags:git tag
  4. 切换到指定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

运行数据迁移的脚本

  1. 提取当前环境的插件
    • poetry run flask extract-plugins –workers=20
  2. 安装插件
    • poetry run flask install-plugins –workers=2
  3. 数据库升级
    • poetry run flask db upgrade
  4. 执行数据迁移
    • poetry run flask migrate-data-for-plugin

运行完上面的流程后,命令行升级的工作就处理完了,下面需要在dify web 上配置

dify web 插件配置

此时系统存在的问题:

  • 知识库不可用 (系统默认的embedding模型没有设置)
  • Agent 绑定的自定义工具不可用 (可能是工具迁移ID变更了)
  • 系统供应商都丢失了。

安装模型供应商

  • 安装自己之前绑定的供应商重新安装模型即可
  • 安装好之前配置的模型供应商,对应的配置应该会回归不需要重新设置密钥。
  • 此时解决的问题:
    • 模型供应商有了 ✅
    • 知识库的Embedding模型会恢复 ✅
  • 此时存在的问题:
    • Agent绑定的工具不可用,下面修复Agent绑定的工具:

Agent工具重新配置

  • 重新添加自定义工具
  • 删除失效的工具
  • 测试Agent
  • 没问题就发布

发表评论