---
title: 版本升级与回滚
description: 平滑升级生产环境，数据库迁移方案，紧急回滚操作手册。
category: deploy
order: 3
---

# 版本升级与回滚

> 平滑升级生产环境，数据库迁移方案，紧急回滚操作手册。

## ⚠️ 升级前必读

### 重要检查清单

- [ ] 备份数据库
- [ ] 查阅版本更新日志
- [ ] 在测试环境验证
- [ ] 确认回滚方案
- [ ] 通知相关人员
- [ ] 选择低峰期执行

### 版本兼容性

| 当前版本 | 可直接升级到 |
|----------|-------------|
| 2.0.x | 2.1.x |
| 2.1.x | 2.2.x, 2.3.x |
| 2.2.x | 2.3.x |
| 1.x | 需要先升级到 2.0 |

## 🚀 升级步骤

### 准备工作

```bash
# 1. 进入部署目录
cd ~/websopy-deploy

# 2. 备份当前版本配置
cp docker-compose.yml docker-compose.yml.bak
cp .env .env.bak

# 3. 备份数据库（必须！）
docker-compose exec postgres pg_dump -U websopy > backups/db_backup_$(date +%Y%m%d).sql

# 4. 备份上传文件
tar -czf backups/uploads_$(date +%Y%m%d).tar.gz -C /data/websopy uploads/
```

### 执行升级

```bash
# 1. 停止服务
docker-compose down

# 2. 拉取新版本镜像
docker-compose pull

# 3. 更新代码（如果使用 git 部署）
git fetch origin
git checkout v2.3.0

# 4. 检查新版本配置变更
git diff v2.2.0 v2.3.0 -- .env.example

# 5. 合并配置变更
nano .env

# 6. 启动服务
docker-compose up -d

# 7. 执行数据库迁移
docker-compose run --rm api websopy migrate
```

### 验证升级

```bash
# 检查服务状态
docker-compose ps

# 检查 API 健康
curl http://localhost:3000/api/health

# 检查版本号
docker-compose exec api websopy --version

# 查看迁移日志
docker-compose logs api | grep -i migrate
```

## 🔧 数据库迁移

### 手动迁移

```bash
# 查看待执行迁移
docker-compose run --rm api websopy migrate:status

# 执行迁移
docker-compose run --rm api websopy migrate

# 回滚上一个迁移
docker-compose run --rm api websopy migrate:rollback
```

## ⤵️ 紧急回滚

### 自动回滚

```bash
# 如果启动失败，查看错误
docker-compose logs api

# 回滚到上一个版本
docker-compose down
git checkout v2.2.0
docker-compose pull
docker-compose up -d
```

### 恢复数据库

```bash
# 停止服务
docker-compose down

# 删除新数据库
docker-compose exec postgres dropdb -U websopy websopy

# 创建空数据库
docker-compose exec postgres createdb -U websopy websopy

# 恢复备份
docker exec -i $(docker-compose ps -q postgres) psql -U websopy < backups/db_backup_20240115.sql

# 启动服务
docker-compose up -d
```

## 📊 版本更新日志

### v2.3.0（最新）

**新增功能：**
- 🚀 AI 流式输出优化，延迟降低 50%
- 📊 新增数据看板组件
- 🔔 支持自定义 Webhook 事件

**Breaking Changes：**
- ⚠️ API `/ai/chat` 端点参数变更
- ⚠️ 环境变量 `AI_MODEL` 重命名为 `DEFAULT_MODEL`

### v2.2.0

**新增功能：**
- 💬 多语言支持
- 📱 移动端优化
- 🔐 SSO 单点登录

### v2.1.0

**新增功能：**
- 🤖 AI Agent 功能
- 📚 RAG 知识库
- ⚡ 工作流自动化

## 🧪 测试环境验证

### 测试清单

- [ ] 首页访问正常
- [ ] 用户登录/注册
- [ ] 主要功能操作
- [ ] API 接口调用
- [ ] Webhook 接收
- [ ] 性能无明显下降

## ❓ 常见问题

### Q: 迁移失败怎么办？

1. 停止所有服务
2. 恢复数据库备份
3. 检查迁移脚本错误
4. 联系技术支持

### Q: 镜像拉取失败？

```bash
# 使用国内镜像源
nano /etc/docker/daemon.json
```

```json
{
  "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
```

```bash
sudo systemctl restart docker
docker-compose pull
```
