📦 准备工作
1. 备份重要数据
# 备份数据库(使用 PostgreSQL 时)
docker exec -t postgres pg_dumpall -U dify > dify_backup_$(date +%Y%m%d).sql
# 备份环境变量和配置文件
cp .env .env.backup
cp docker-compose.yaml docker-compose.yaml.backup
2. 查看当前版本
cd dify # 进入 Dify 安装目录
cat .env | grep DIFY_VERSION
🚀 升级步骤
方法一:使用官方升级脚本(推荐)
1.
下载最新版本
# 拉取最新代码
git fetch --all
git checkout main
git pull origin main
2.
运行升级脚本
# 执行升级命令
./scripts/upgrade.sh
3.
或者手动升级
# 停止当前服务
docker compose down
# 拉取最新镜像
docker compose pull
# 启动服务
docker compose up -d
方法二:全新安装迁移
1.
备份数据
# 导出数据
docker exec -t dify-web python manage.py export_all_data --output backup.json
2.
下载最新版本
# 克隆最新代码
cd /opt
git clone https://github.com/langgenius/dify.git
cd dify
3.
配置环境
# 复制配置文件
cp .env.example .env
# 编辑配置文件,填入原有配置
nano .env
4.
迁移数据
# 启动新版本
docker compose up -d
# 导入数据
docker exec -t dify-web python manage.py import_all_data --input backup.json
⚙️ 配置更新
更新 .env 文件
检查是否有新增的配置项:
# 比较新旧配置
diff .env.example .env
常见需要更新的配置
# 更新版本号
DIFY_VERSION=latest
# 检查新增配置
# LOG_LEVEL=INFO
# STORAGE_TYPE=local
# SENTRY_DSN=
🔄 数据库迁移
自动迁移
Dify 启动时会自动执行数据库迁移:
# 查看迁移日志
docker logs dify-web --tail 50
手动迁移
# 进入应用容器
docker exec -it dify-web bash
# 执行迁移
python manage.py migrate
✅ 验证升级
1. 检查服务状态
docker compose ps
docker compose logs --tail 20
2. 验证版本
# 查看 Web 服务版本
curl http://localhost:3000/api/health
3. 检查功能
🔧 故障排除
常见问题及解决
1.
端口冲突
# 检查端口占用
sudo lsof -i :3000
sudo lsof -i :5001
2.
镜像拉取失败
# 使用国内镜像
# 在 .env 中添加
# REGISTRY_MIRROR=https://docker.mirrors.ustc.edu.cn
3.
数据库连接错误
# 检查数据库服务
docker compose logs postgres
4.
回滚到旧版本
# 修改 .env 中的版本号
DIFY_VERSION=0.6.0 # 指定旧版本
# 重新启动
docker compose down
docker compose pull
docker compose up -d
📝 升级后任务
1. 清理旧镜像
docker image prune -a
2. 更新 Nginx 配置(如有)
sudo nano /etc/nginx/sites-available/dify
# 确认代理设置正确
3. 监控日志
# 实时查看日志
docker compose logs -f
💡 最佳实践
生产环境升级前:
- 在测试环境先验证
- 选择维护窗口时间
- 通知用户系统维护
版本策略:
文档参考:
- 官方升级文档:https://docs.dify.ai/getting-started/install-self-hosted/upgrade
- GitHub Releases:https://github.com/langgenius/dify/releases
🆘 获取帮助
如果遇到问题:
查看日志:
docker compose logs
查阅官方文档
GitHub Issues 搜索类似问题
Discord 社区求助
重要提示:生产环境务必先备份数据再执行升级!