# ZJPB v2.1 增量部署指南

## 📋 本次更新内容

### 新增功能
1. **Prompt管理系统** - 后台可管理AI提示词模板
2. **详情页图标优化** - Material Icons替换为Emoji
3. **标签显示修复** - 修复编辑页标签名称无法显示问题
4. **页脚优化** - 添加ICP备案号和Microsoft Clarity统计

### 数据库变更
- 新增表：`prompt_templates` （Prompt模板表）
- 无现有表结构变更，完全兼容旧数据

---

## 🔒 增量部署步骤

### 第一步：备份生产数据库（必须！）

在1Panel中备份数据库：
```bash
# 方法1：使用1Panel面板
1. 进入1Panel -> 数据库
2. 找到 ai_nav 数据库
3. 点击"备份"按钮
4. 下载备份文件到本地保存

# 方法2：使用命令行
mysqldump -h 112.124.42.38 -u ai_nav_user -p ai_nav > backup_$(date +%Y%m%d_%H%M%S).sql
```

### 第二步：停止生产应用

```bash
# SSH登录到生产服务器
ssh root@your-server-ip

# 进入应用目录
cd /www/wwwroot/zjpb

# 停止应用
./manage.sh stop
```

### 第三步：备份现有代码

```bash
# 创建备份目录
cd /www/wwwroot
cp -r zjpb zjpb_backup_$(date +%Y%m%d_%H%M%S)
```

### 第四步：上传新代码

**方法1：使用Git（推荐）**

```bash
# 在本地提交所有修改
git add .
git commit -m "release: v2.1 - Prompt管理系统、页脚优化、图标修复"
git push origin master

# 在服务器上拉取
cd /www/wwwroot/zjpb
git pull origin master
```

**方法2：手动上传**

```bash
# 在本地压缩（排除不需要的文件）
zip -r zjpb_v2.1.zip . -x "*.pyc" "*__pycache__*" "*.git*" ".env" "venv/*" "test_*.py" "*.db" "nul"

# 上传到服务器 /www/wwwroot/zjpb_new.zip
# 然后解压覆盖
cd /www/wwwroot/zjpb
unzip -o ../zjpb_new.zip
```

### 第五步：安装新依赖（如有）

```bash
cd /www/wwwroot/zjpb
source venv/bin/activate
pip install -r requirements.txt
```

### 第六步：运行数据库迁移

```bash
# 激活虚拟环境
source venv/bin/activate

# 运行迁移脚本（创建 prompt_templates 表）
python migrate_prompts.py
```

**预期输出：**
```
正在创建 prompt_templates 表...
[OK] 表创建成功
正在初始化默认prompt模板...
[OK] 默认prompt模板初始化成功
  - 标签生成: 1
  - 主要功能生成: 2
  - 详细介绍生成: 3
```

### 第七步：重启应用

```bash
./manage.sh start
```

### 第八步：验证部署

**检查项：**

1. **访问前台首页**
   - 检查页脚是否显示ICP备案号
   - 检查Clarity统计是否加载（F12查看Network）

2. **访问详情页**
   - 检查图标是否正常显示（不是Material Icons文本）

3. **登录后台**
   - 检查是否有"Prompt管理"菜单
   - 进入Prompt管理，查看是否有3条默认数据

4. **测试网站编辑**
   - 编辑任意网站，检查标签是否正常显示（不是空白蓝框）

5. **测试AI功能**
   - 创建新网站，测试"AI生成标签"功能
   - 测试"AI生成详细介绍"功能
   - 测试"AI生成主要功能"功能

---

## 🔄 回滚方案（如出现问题）

### 快速回滚代码

```bash
cd /www/wwwroot
./zjpb/manage.sh stop

# 删除新版本
rm -rf zjpb

# 恢复备份
mv zjpb_backup_YYYYMMDD_HHMMSS zjpb

# 重启
cd zjpb
./manage.sh start
```

### 恢复数据库

```bash
# 如果新表导致问题，可以删除新表
mysql -h 112.124.42.38 -u ai_nav_user -p ai_nav

# 在MySQL中执行
DROP TABLE IF EXISTS prompt_templates;
```

---

## 📝 注意事项

1. ✅ **本次更新不会影响现有数据** - 只是新增表，不修改现有表
2. ✅ **完全向后兼容** - 即使不运行迁移脚本，前台也能正常访问
3. ✅ **可以随时回滚** - 保留了完整备份
4. ⚠️ **必须备份数据库** - 虽然风险很低，但备份是必须的
5. ⚠️ **检查.env配置** - 确保生产环境的.env配置正确

---

## 🐛 常见问题

### Q1: 迁移脚本报错 "表已存在"
**A:** 说明之前已经运行过迁移，可以跳过此步骤

### Q2: Prompt管理菜单看不到
**A:** 清除浏览器缓存，重新登录后台

### Q3: 标签还是显示不出来
**A:** 清除浏览器缓存，强制刷新（Ctrl+F5）

### Q4: Clarity统计没加载
**A:** 检查网络是否能访问 clarity.ms，可能被墙

---

## 📞 技术支持

如遇问题，请检查日志：

```bash
# 查看应用日志
./manage.sh logs

# 查看错误日志
tail -f logs/error.log
```
