目录
[1. 备份](#1. 备份)
[1.1 备份全部文件](#1.1 备份全部文件)
[1.2 备份特定文件](#1.2 备份特定文件)
[1.2.1 备份自定义的docker-compose.yaml文件(可选)](#1.2.1 备份自定义的docker-compose.yaml文件(可选))
[1.2.2 备份.env文件](#1.2.2 备份.env文件)
[1.2.3 备份volumes数据文件](#1.2.3 备份volumes数据文件)
[2. 升级](#2. 升级)
[2.1 从主分支获取最新代码](#2.1 从主分支获取最新代码)
[2.2 代码及文件替换](#2.2 代码及文件替换)
[2.3 启动服务](#2.3 启动服务)
[2.4 报错解决](#2.4 报错解决)
前言
在一些情况下我们需要通过升级dify来修复一些漏洞,或者使用一些新功能,本文将讲解如何对dify进行升级。
1. 备份
备份是必不可少的步骤,可以保证我们后面就算操作失误也能进行回滚。可以选择备份全部文件,也可以选择对特定的几个文件进行备份。
先停止服务,需进入到旧版本docker目录下:
bash
cd /dify/docker
执行下述命令:
bash
docker compose down
1.1 备份全部文件
执行下述命令进行备份。
bash
cp -r dify dify_bk
1.2 备份特定文件
我们可以只备份有修改的哪些文件。一般只需备份下述三类文件即可。
1.2.1 备份自定义的docker-compose.yaml文件(可选)
bash
cd /dify/docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
1.2.2 备份.env文件
bash
cp .env .env.1.7.1
1.2.3 备份volumes数据文件
volumes文件夹保存的是你在Dify创建的知识库和应用等所有文件。
bash
tar -cvf volumes-$(date +%s).tgz volumes
2. 升级
2.1 从主分支获取最新代码
bash
git checkout main
git pull origin main
如果git拉取速度慢,可以直接从官网下载压缩包。
2.2 代码及文件替换
最新版本代码解压并替换旧版文件。
将原来的数据"volumes"文件夹和配置文件 .env 复制到新安装包中。.env文件也可以自己重新进行配置。
解压volumes.tgz文件:
bash
# 解压未压缩的归档
tar -xvf volumes-1696156800.tgz
# 或解压到指定目录
tar -xvf volumes-1696156800.tgz -C /目标路径/
2.3 启动服务
bash
docker compose up -d
2.4 报错解决
2025/11/26 11:37:57 /app/internal/db/pg/pg.go:30
error\] failed to initialize database, got error failed to connect to host=db_postgres user=postgres database=dify_plugin: hostname resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving) 2025/11/26 11:37:57 /app/internal/db/pg/pg.go:34 \[error\] failed to initialize database, got error failed to connect to host=db_postgres user=postgres database=postgres: hostname \> resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving) 2025/11/26 11:37:57 init.go:99: \[PANIC\]failed to init dify plugin db: failed to connect to host=db_postgres user=postgres database=postgres: hostname resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving) panic: \[PANIC\]failed to init dify plugin db: failed to connect to host=db_postgres user=postgres database=postgres: hostname resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving) 如果遇到数据库连接错误host=db_postgres user=postgres database=dify_plugin: 请用docker compose --profile postgresql up -d启动。
bash
docker compose --profile postgresql up -d