上一篇 下一篇 分享链接 返回 返回顶部

Dify 升级前必看:值不值得升、怎么备份、如何回滚全讲清楚

发布人:慈云数据-客服中心 发布时间:17小时前 阅读量:0

Dify 值得升级吗|附完整命令

在过去一年里,Dify 已经从一个“好用的 LLM 应用开发平台”,逐渐变成很多团队搭建 AI 应用、智能客服、知识库问答、工作流自动化的基础设施。随着版本持续迭代,很多已经部署了 Dify 的用户都会遇到一个问题:

Dify 到底值不值得升级?升级会不会影响现有应用?数据库、向量库、配置文件该怎么备份?有没有一套完整命令可以直接参考?

这篇文章会围绕“是否值得升级”这个问题展开,同时给出一套相对稳妥的升级流程,包含备份、拉取新版本、迁移、启动、回滚等常用命令。适合通过 Docker Compose 自部署 Dify 的用户参考。


一、Dify 值得升级吗?

先给结论:

如果你正在生产环境使用 Dify,并且当前版本稳定运行,不建议盲目追新;但如果你需要更好的模型兼容性、工作流能力、知识库效果、安全修复和性能优化,那么 Dify 是值得有计划升级的。

也就是说,Dify 值不值得升级,关键不在于“新版本一定更好”,而在于你当前的使用场景是否需要新版本带来的能力。


二、为什么很多人想升级 Dify?

Dify 的版本迭代通常会带来以下几类变化。

1. 支持更多模型和供应商

Dify 的核心价值之一就是把不同大模型统一封装,让开发者可以更方便地构建 AI 应用。

随着 OpenAI、Anthropic、Google Gemini、Azure OpenAI、通义千问、智谱、DeepSeek、Moonshot、Ollama、本地模型等不断更新,Dify 新版本往往会增强模型接入能力。

如果你当前版本存在以下问题,就比较适合升级:

  • 新模型无法接入;
  • 模型参数不完整;
  • Function Calling / Tool Calling 支持不理想;
  • 本地模型调用兼容性较差;
  • 某些模型供应商配置复杂或无法使用。

对于希望快速尝试新模型的团队来说,升级 Dify 可以减少大量适配工作。


2. 工作流能力持续增强

Dify 的 Workflow 是很多人选择它的重要原因。相比简单的聊天应用,工作流可以把大模型、条件判断、代码节点、HTTP 请求、知识库检索、变量处理等串起来,做出更复杂的业务流程。

如果你当前使用 Dify 只是做简单问答,可能感受不明显。但如果你已经开始用 Dify 做:

  • 智能客服分流;
  • 合同审查;
  • 简历筛选;
  • 数据分析助手;
  • 文档自动生成;
  • 多步骤自动化任务;
  • 企业内部流程助手;

那么新版本对 Workflow 的增强通常很有价值。

很多升级的动力,实际上来自于“旧版本做不到”或者“旧版本做起来很绕”。


3. 知识库检索效果和稳定性优化

Dify 的知识库能力是落地 RAG 应用的重要基础。一个企业内部知识库系统,真正难点不在于“能不能回答”,而在于:

  • 文档切分是否合理;
  • 向量检索是否准确;
  • 召回内容是否相关;
  • 长文档处理是否稳定;
  • 重排模型是否支持;
  • 多格式文档解析是否可靠;
  • 知识库更新是否方便。

新版本通常会优化知识库处理流程、检索策略、文档解析、向量库兼容等问题。

如果你的应用严重依赖知识库,而且遇到了召回不准、文档处理失败、更新慢等问题,那么升级往往是值得考虑的。


4. 安全修复和依赖更新

对于生产环境来说,安全性非常重要。

Dify 本身依赖多个组件,例如:

  • PostgreSQL;
  • Redis;
  • Weaviate / Qdrant / Milvus 等向量库;
  • Celery Worker;
  • API 服务;
  • Web 前端;
  • Sandbox;
  • Nginx;
  • 插件或模型供应商接口。

新版本可能会修复安全漏洞、权限问题、依赖风险和接口兼容问题。如果你将 Dify 暴露在公网,或者用于企业内部敏感业务,那么安全更新是很重要的升级理由。


5. 性能和稳定性提升

Dify 在生产环境中常见的稳定性问题包括:

  • Worker 任务堆积;
  • 文档索引任务慢;
  • 大量并发请求时响应不稳定;
  • 数据库连接数不足;
  • 前端页面加载异常;
  • 某些任务失败后无法恢复;
  • 容器异常退出。

新版本可能会对这些问题做修复。如果你当前版本已经影响业务稳定性,那么升级新版本有可能解决问题。


三、什么时候不建议立刻升级?

虽然 Dify 值得升级,但不是所有场景都适合马上升级。

以下情况建议谨慎:

1. 当前版本运行非常稳定

如果你的 Dify 已经承载生产业务,功能也完全够用,没有明显 bug,不建议看到新版本就立即升级。

尤其是生产环境,应优先考虑稳定性。


2. 没有做备份机制

升级 Dify 不是简单地执行一条 docker compose pull 就完事了。Dify 涉及数据库、配置文件、向量库、上传文件等数据。

如果没有备份,升级失败后很难恢复。

所以,在没有备份能力之前,不建议直接升级。


3. 跨多个大版本升级

如果你的版本比较旧,比如从很早的版本直接升级到最新版本,中间可能涉及数据库结构、环境变量、服务拆分、配置变更等。

这种情况下建议先阅读官方 Release Notes,必要时分阶段升级。


4. 使用了大量自定义配置

如果你改过 Docker Compose 文件、自定义过 Nginx、接入了私有模型网关、修改过源码,升级前一定要特别小心。

因为新版本可能覆盖你的修改,或者导致配置不兼容。


四、升级前必须明确的几个问题

在正式升级之前,建议你先确认以下内容。

1. 你当前的部署方式是什么?

常见部署方式包括:

  • Docker Compose;
  • Kubernetes;
  • 源码部署;
  • 云服务器一键部署;
  • 宝塔、1Panel 等面板部署。

本文主要以 Docker Compose 部署方式 为例,因为这是 Dify 自部署最常见的方式。


2. 当前版本是多少?

进入 Dify 部署目录后,可以查看当前 Git 分支和版本:

cd /opt/dify
git status
git branch
git log -1 --oneline

如果是官方仓库克隆部署,也可以查看 tag:

git tag --points-at HEAD

如果你使用的是 Docker 镜像,也可以查看当前容器镜像版本:

docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}"

3. 你的数据在哪里?

Dify 的数据通常包括:

  • PostgreSQL 数据;
  • Redis 数据;
  • 向量库数据;
  • 上传文件;
  • .env 配置文件;
  • Docker Compose 文件;
  • 自定义 Nginx 配置;
  • 自定义模型配置。

如果你不知道数据在哪,升级前一定不要着急动手。


五、Dify 升级总体流程

推荐升级流程如下:

确认当前版本
      ↓
阅读目标版本 Release Notes
      ↓
停止写入或进入维护窗口
      ↓
备份数据库、配置文件、向量库和上传文件
      ↓
拉取新版本代码
      ↓
对比并更新 .env 配置
      ↓
拉取新镜像
      ↓
启动服务
      ↓
执行数据库迁移
      ↓
检查服务状态
      ↓
验证应用、工作流、知识库
      ↓
保留备份一段时间

生产环境中,最重要的是两点:

  1. 升级前备份;
  2. 升级后验证。

六、升级前准备

假设你的 Dify 安装目录是:

/opt/dify

如果你的目录不同,请自行替换。

进入目录:

cd /opt/dify

查看当前目录内容:

ls -lah

一般 Docker Compose 部署的 Dify 会有类似结构:

dify/
├── docker/
├── api/
├── web/
├── README.md
└── ...

Docker Compose 文件通常在:

/opt/dify/docker

进入 Docker 目录:

cd /opt/dify/docker

查看文件:

ls -lah

常见文件包括:

.env
.env.example
docker-compose.yaml
docker-compose.middleware.yaml
nginx/
volumes/

七、升级前备份命令

升级前最重要的事情就是备份。下面给出一套完整的备份命令。

1. 创建备份目录

mkdir -p /opt/backups/dify
cd /opt/backups/dify

创建带时间戳的备份目录:

BACKUP_DIR="/opt/backups/dify/$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"
echo "$BACKUP_DIR"

2. 备份 .env 和 Compose 配置

cp -a /opt/dify/docker/.env "$BACKUP_DIR/.env.bak"
cp -a /opt/dify/docker/docker-compose.yaml "$BACKUP_DIR/docker-compose.yaml.bak"

如果你还有其他 Compose 文件,也一起备份:

cp -a /opt/dify/docker/docker-compose.* "$BACKUP_DIR/" 2>/dev/null || true

备份 nginx 配置:

cp -a /opt/dify/docker/nginx "$BACKUP_DIR/nginx.bak" 2>/dev/null || true

3. 备份 volumes 目录

如果你的 Dify 数据位于 /opt/dify/docker/volumes,可以整体打包:

tar -czf "$BACKUP_DIR/dify-volumes.tar.gz" -C /opt/dify/docker volumes

这个目录可能比较大,尤其是知识库文档、向量库数据较多时。可以先查看大小:

du -sh /opt/dify/docker/volumes

4. 备份 PostgreSQL 数据库

先查看 PostgreSQL 容器名称:

docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" | grep -i postgres

常见容器名可能是:

docker-db-1

也可能是:

dify-db-1

执行备份前,可以查看 .env 中数据库配置:

grep -E "DB_USERNAME|DB_PASSWORD|DB_DATABASE|DB_HOST|DB_PORT" /opt/dify/docker/.env

假设数据库容器名为 docker-db-1,数据库用户是 postgres,数据库名是 dify,可以执行:

docker exec docker-db-1 pg_dump -U postgres -d dify > "$BACKUP_DIR/dify-postgres.sql"

如果你的数据库用户名或数据库名不同,请替换:

docker exec <数据库容器名> pg_dump -U <数据库用户名> -d <数据库名> > "$BACKUP_DIR/dify-postgres.sql"

压缩 SQL 文件:

gzip "$BACKUP_DIR/dify-postgres.sql"

5. 备份当前 Git 版本信息

cd /opt/dify
git rev-parse HEAD > "$BACKUP_DIR/git-commit.txt"
git branch --show-current > "$BACKUP_DIR/git-branch.txt"
git status > "$BACKUP_DIR/git-status.txt"

如果当前处于某个 tag,也可以记录:

git describe --tags --always > "$BACKUP_DIR/git-version.txt"

6. 检查备份结果

ls -lah "$BACKUP_DIR"

建议至少确认以下文件存在:

.env.bak
docker-compose.yaml.bak
dify-volumes.tar.gz
dify-postgres.sql.gz
git-commit.txt

八、停止 Dify 服务

进入 Docker 目录:

cd /opt/dify/docker

停止服务:

docker compose down

如果你的系统使用的是旧版命令,也可能是:

docker-compose down

建议优先使用:

docker compose version

确认当前是否支持新版 Compose。


九、拉取 Dify 新版本代码

进入 Dify 根目录:

cd /opt/dify

查看当前状态:

git status

如果你没有改动源码,可以直接拉取:

git fetch --all --tags

查看最新 tag:

git tag --sort=-v:refname | head -20

假设你要升级到指定版本,例如:

git checkout 1.0.0

如果你要升级到最新主分支,则可以:

git checkout main
git pull origin main

不过生产环境更建议使用明确版本 tag,而不是直接跟随 main。

例如:

git checkout tags/1.0.0 -b upgrade-1.0.0

如果你之前部署时就是某个分支,也可以:

git pull

十、更新 .env 配置

升级 Dify 时,.env.example 可能会新增配置项。你不能简单覆盖原来的 .env,否则原来的密钥、数据库密码、模型配置等可能丢失。

推荐做法是对比:

cd /opt/dify/docker
diff -u .env.example .env | less

也可以查看新版本 .env.example 中有哪些新增项:

grep -v '^#' .env.example | grep '=' | cut -d= -f1 | sort > /tmp/env_example_keys.txt
grep -v '^#' .env | grep '=' | cut -d= -f1 | sort > /tmp/env_keys.txt
comm -23 /tmp/env_example_keys.txt /tmp/env_keys.txt

上面命令会列出 .env.example 中有、但你当前 .env 中没有的配置项。

你可以手动编辑 .env

nano .env

或者:

vim .env

把新增配置项补进去。

注意:不要随意修改 SECRET_KEY、数据库密码、存储路径等关键配置,否则可能导致原有服务无法正常读取数据。


十一、拉取最新镜像并启动

进入 Docker 目录:

cd /opt/dify/docker

拉取镜像:

docker compose pull

启动服务:

docker compose up -d

查看服务状态:

docker compose ps

查看日志:

docker compose logs -f

如果只想看 API 服务日志:

docker compose logs -f api

查看 Worker 日志:

docker compose logs -f worker

查看 Web 日志:

docker compose logs -f web

十二、执行数据库迁移

Dify 新版本可能需要执行数据库迁移。通常 API 容器启动时会自动处理一部分迁移,但生产环境建议关注日志确认。

查看 API 容器名称:

docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" | grep api

进入 API 容器:

docker exec -it  sh

如果需要手动执行迁移,常见命令类似:

flask db upgrade

也可以直接在宿主机执行:

docker exec -it  flask db upgrade

请注意,不同版本的 Dify 启动脚本和迁移方式可能有所变化。最稳妥的方式是以官方对应版本文档为准,并结合容器日志判断。


十三、升级后检查

升级完成后,不要马上宣布完成。建议按以下步骤检查。

1. 检查容器状态

cd /opt/dify/docker
docker compose ps

确认所有核心容器都是 Up 状态。


2. 检查端口监听

ss -lntp | grep -E "80|443|3000|5001"

具体端口取决于你的配置。


3. 检查 API 健康状态

如果你配置了域名,例如:

https://dify.example.com

可以执行:

curl -I https://dify.example.com

也可以本机测试:

curl -I http://127.0.0.1

4. 检查 Web 页面

打开浏览器访问 Dify 页面,确认:

  • 登录正常;
  • 应用列表正常;
  • 应用详情正常;
  • 工作流可以打开;
  • 知识库可以打开;
  • 模型供应商配置仍然存在;
  • API Key 没有丢失。

5. 检查知识库

建议测试以下内容:

  • 上传新文档;
  • 对旧知识库发起问答;
  • 检查召回内容;
  • 检查索引任务是否完成;
  • 检查 Worker 是否有报错。

查看 Worker 日志:

docker compose logs -f worker

6. 检查应用调用

如果你有外部系统通过 API 调用 Dify,需要测试接口是否正常。

示例:

curl -X POST "https://dify.example.com/v1/chat-messages" \
  -H "Authorization: Bearer app-xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "inputs": {},
    "query": "你好,请简单介绍一下你自己",
    "response_mode": "blocking",
    "conversation_id": "",
    "user": "upgrade-test-user"
  }'

如果应用是 Workflow 类型,可以测试工作流接口,具体请求体以你当前应用类型为准。


十四、常见问题与处理办法

问题 1:升级后页面打不开

先看容器状态:

docker compose ps

再看 Nginx 日志:

docker compose logs -f nginx

看 Web 日志:

docker compose logs -f web

如果是端口冲突,可以查看:

ss -lntp

问题 2:API 容器一直重启

查看日志:

docker compose logs -f api

常见原因包括:

  • .env 缺少新配置项;
  • 数据库连接失败;
  • Redis 连接失败;
  • SECRET_KEY 配置错误;
  • 数据库迁移失败。

检查环境变量:

grep -E "SECRET_KEY|DB_|REDIS_|CELERY_" .env

问题 3:知识库无法检索

查看向量库容器:

docker compose ps

查看向量库日志,例如 Weaviate:

docker compose logs -f weaviate

如果你使用 Qdrant:

docker compose logs -f qdrant

同时查看 Worker:

docker compose logs -f worker

问题 4:模型供应商配置丢失

通常不要第一时间怀疑数据丢了。先确认:

  • 是否连接到了原来的数据库;
  • .env 是否被覆盖;
  • SECRET_KEY 是否变化;
  • 数据库名是否变化;
  • 容器是否使用了新的 volume。

检查数据库配置:

grep -E "DB_HOST|DB_PORT|DB_USERNAME|DB_PASSWORD|DB_DATABASE" .env

检查 volume:

docker volume ls

十五、如何回滚 Dify?

如果升级后出现严重问题,可以考虑回滚。

1. 停止当前服务

cd /opt/dify/docker
docker compose down

2. 回滚代码版本

进入 Dify 根目录:

cd /opt/dify

查看备份中记录的 commit:

cat /opt/backups/dify/<备份目录>/git-commit.txt

切回旧版本:

git checkout <旧commit>

或者切回旧 tag:

git checkout <旧tag>

3. 恢复 .env

cp -a /opt/backups/dify/<备份目录>/.env.bak /opt/dify/docker/.env

4. 恢复 volumes

如果需要恢复 volumes,可以先移走当前目录:

mv /opt/dify/docker/volumes /opt/dify/docker/volumes.failed.$(date +%Y%m%d_%H%M%S)

解压备份:

tar -xzf /opt/backups/dify/<备份目录>/dify-volumes.tar.gz -C /opt/dify/docker

5. 恢复 PostgreSQL 数据库

如果需要恢复数据库,先启动数据库服务:

cd /opt/dify/docker
docker compose up -d db

等待数据库启动后,找到数据库容器:

docker ps --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" | grep -i postgres

解压 SQL:

gunzip -c /opt/backups/dify/<备份目录>/dify-postgres.sql.gz > /tmp/dify-postgres.sql

执行恢复前,通常需要清空或重建数据库。示例命令如下,请务必替换为你的容器名、用户名和数据库名:

docker exec -i <数据库容器名> psql -U <数据库用户名> -d <数据库名> < /tmp/dify-postgres.sql

如果需要先删除并重建数据库,示例:

docker exec -it <数据库容器名> psql -U postgres

进入 psql 后执行:

DROP DATABASE dify;
CREATE DATABASE dify;
\q

然后再导入:

docker exec -i <数据库容器名> psql -U postgres -d dify < /tmp/dify-postgres.sql

6. 重新启动旧版本

cd /opt/dify/docker
docker compose pull
docker compose up -d
docker compose ps

查看日志:

docker compose logs -f

十六、推荐的一键升级脚本示例

如果你已经熟悉 Dify 部署结构,可以参考下面这个脚本。不过生产环境不建议无脑执行,最好先在测试环境验证。

新建脚本:

nano /opt/upgrade-dify.sh

写入以下内容:

#!/usr/bin/env bash
set -e

DIFY_DIR="/opt/dify"
DOCKER_DIR="$DIFY_DIR/docker"
BACKUP_BASE="/opt/backups/dify"
TARGET_REF="${1:-main}"

BACKUP_DIR="$BACKUP_BASE/$(date +%Y%m%d_%H%M%S)"

echo "======================================"
echo "Dify upgrade script"
echo "DIFY_DIR: $DIFY_DIR"
echo "TARGET_REF: $TARGET_REF"
echo "BACKUP_DIR: $BACKUP_DIR"
echo "======================================"

mkdir -p "$BACKUP_DIR"

echo "[1/8] Backup config files..."
cp -a "$DOCKER_DIR/.env" "$BACKUP_DIR/.env.bak"
cp -a "$DOCKER_DIR/docker-compose.yaml" "$BACKUP_DIR/docker-compose.yaml.bak"
cp -a "$DOCKER_DIR"/docker-compose.* "$BACKUP_DIR/" 2>/dev/null || true
cp -a "$DOCKER_DIR/nginx" "$BACKUP_DIR/nginx.bak" 2>/dev/null || true

echo "[2/8] Backup git info..."
cd "$DIFY_DIR"
git rev-parse HEAD > "$BACKUP_DIR/git-commit.txt"
git branch --show-current > "$BACKUP_DIR/git-branch.txt" || true
git describe --tags --always > "$BACKUP_DIR/git-version.txt" || true
git status > "$BACKUP_DIR/git-status.txt"

echo "[3/8] Backup volumes..."
if [ -d "$DOCKER_DIR/volumes" ]; then
  tar -czf "$BACKUP_DIR/dify-volumes.tar.gz" -C "$DOCKER_DIR" volumes
else
  echo "No volumes directory found, skip."
fi

echo "[4/8] Backup PostgreSQL..."
cd "$DOCKER_DIR"
DB_CONTAINER=$(docker ps --format "{{.Names}}" | grep -E "db|postgres" | head -n 1 || true)

if [ -n "$DB_CONTAINER" ]; then
  echo "Found database container: $DB_CONTAINER"
  docker exec "$DB_CONTAINER" pg_dump -U postgres -d dify > "$BACKUP_DIR/dify-postgres.sql" || {
    echo "PostgreSQL backup failed. Please check DB username/database name."
    exit 1
  }
  gzip "$BACKUP_DIR/dify-postgres.sql"
else
  echo "Database container not found, skip pg_dump."
fi

echo "[5/8] Stop Dify services..."
cd "$DOCKER_DIR"
docker compose down

echo "[6/8] Update Dify code..."
cd "$DIFY_DIR"
git fetch --all --tags
git checkout "$TARGET_REF"

if [ "$TARGET_REF" = "main" ]; then
  git pull origin main
fi

echo "[7/8] Pull images and start services..."
cd "$DOCKER_DIR"
docker compose pull
docker compose up -d

echo "[8/8] Show status..."
docker compose ps

echo "======================================"
echo "Upgrade finished."
echo "Backup directory: $BACKUP_DIR"
echo "Please check logs:"
echo "cd $DOCKER_DIR && docker compose logs -f"
echo "======================================"

保存后赋予执行权限:

chmod +x /opt/upgrade-dify.sh

升级到 main:

/opt/upgrade-dify.sh main

升级到指定版本,例如:

/opt/upgrade-dify.sh 1.0.0

或者:

/opt/upgrade-dify.sh tags/1.0.0

注意:脚本中的数据库用户名和数据库名默认使用 postgresdify。如果你的环境不同,需要修改脚本中的 pg_dump 命令。


十七、升级 Dify 的最佳实践

1. 先测试环境,后生产环境

如果 Dify 已经用于重要业务,强烈建议准备一套测试环境,先恢复生产备份,再测试升级。

测试通过后,再在生产环境升级。


2. 固定版本,不要追 main

生产环境更推荐使用稳定 tag,例如:

git checkout tags/<版本号>

而不是一直使用:

git pull origin main

主分支可能包含尚未完全验证的变更,生产环境追 main 风险更高。


3. 升级前阅读 Release Notes

每个版本可能都有破坏性变更,比如:

  • 环境变量变更;
  • 数据库迁移;
  • 服务拆分;
  • 模型配置调整;
  • 插件机制变化;
  • 默认向量库变化;
  • 依赖组件版本变化。

升级前阅读 Release Notes 可以减少很多排查时间。


4. 维护窗口升级

建议在业务低峰期升级,比如晚上或周末。

升级前可以提前通知团队:

Dify 将在 xx:xx - xx:xx 进行升级维护,期间可能出现短暂不可用。

5. 保留备份至少一段时间

升级后即使看起来正常,也建议保留备份至少 7 到 30 天。因为有些问题不是当天就能发现,比如:

  • 某些旧工作流节点异常;
  • 某类文档无法解析;
  • 某个模型供应商调用失败;
  • 历史会话读取异常;
  • API 调用参数兼容问题。

十八、我的建议:哪些用户应该升级?

建议升级的情况

如果你符合以下情况,建议升级:

  • 需要接入新模型;
  • 当前版本存在明显 bug;
  • 需要更强的 Workflow 能力;
  • 知识库检索效果不满足需求;
  • 使用公网部署,关注安全更新;
  • 当前版本 API 或 Worker 不稳定;
  • 官方明确修复了你遇到的问题。

可以暂缓升级的情况

如果你符合以下情况,可以暂缓:

  • 当前版本稳定;
  • 功能完全够用;
  • 没有测试环境;
  • 没有备份机制;
  • 团队没有时间处理兼容问题;
  • 正处于业务高峰期。

十九、总结

Dify 值不值得升级,不能简单回答“值得”或“不值得”。

更准确的判断是:

Dify 值得升级,但应该有计划、有备份、有验证地升级。

对于个人用户、测试环境或内部小工具,升级成本相对较低,可以更积极地尝试新版本。
对于企业生产环境,则应该遵循标准流程:先备份,再升级,后验证,必要时可回滚。

最后再强调一次升级顺序:

# 1. 进入目录
cd /opt/dify/docker

# 2. 备份配置、数据库和 volumes
# 3. 停止服务
docker compose down

# 4. 更新代码
cd /opt/dify
git fetch --all --tags
git checkout <目标版本>

# 5. 对比并更新 .env
cd /opt/dify/docker
diff -u .env.example .env | less

# 6. 拉取镜像并启动
docker compose pull
docker compose up -d

# 7. 查看状态和日志
docker compose ps
docker compose logs -f

如果只记住一句话,那就是:

不要为了升级而升级;但当新版本能解决你的真实问题时,Dify 非常值得升级。

目录结构
全文