# ZJPB v2.1 手动上传部署指南

## 📋 需要上传的文件（共10个）

### 核心文件（必须上传）
1. ✅ `app.py` - 新增Prompt管理视图
2. ✅ `models.py` - 新增PromptTemplate模型
3. ✅ `migrate_prompts.py` - 数据库迁移脚本（新文件）

### 模板文件（必须上传）
4. ✅ `templates/base_new.html` - 页脚和统计代码
5. ✅ `templates/detail_new.html` - 图标修复
6. ✅ `templates/admin/site/create.html` - 标签显示修复
7. ✅ `templates/admin/site/edit.html` - 标签显示修复

### 辅助文件（可选）
8. ⭕ `INCREMENTAL_DEPLOY.md` - 部署文档
9. ⭕ `export_data.py` - 数据导出工具
10. ⭕ `migrate_db.py` - 数据库工具

### 部署脚本（新增）
11. ✅ `quick_deploy_server.sh` - 服务器端快速部署脚本

---

## 🚀 部署步骤（使用1Panel文件管理器）

### 第一步：备份生产数据库

1. 登录1Panel管理面板
2. 进入 **数据库** → 找到 `ai_nav` 数据库
3. 点击 **备份** 按钮
4. 下载备份文件到本地保存

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

1. 在1Panel中进入 **文件管理**
2. 进入 `/www/wwwroot/`
3. 右键点击 `zjpb` 文件夹
4. 选择 **压缩** → 命名为 `zjpb_backup_20250130.tar.gz`
5. 下载到本地保存

### 第三步：上传新文件

#### 方法1：使用1Panel文件管理器（推荐）

1. 在1Panel文件管理器中进入 `/www/wwwroot/zjpb/`

2. **上传核心文件**（覆盖）：
   - 上传 `app.py` 到 `/www/wwwroot/zjpb/`
   - 上传 `models.py` 到 `/www/wwwroot/zjpb/`
   - 上传 `migrate_prompts.py` 到 `/www/wwwroot/zjpb/`（新文件）
   - 上传 `quick_deploy_server.sh` 到 `/www/wwwroot/zjpb/`（新文件）

3. **上传模板文件**（覆盖）：
   - 进入 `/www/wwwroot/zjpb/templates/`
   - 上传 `base_new.html` 到 `templates/`
   - 上传 `detail_new.html` 到 `templates/`
   - 进入 `templates/admin/site/`
   - 上传 `create.html` 到 `templates/admin/site/`
   - 上传 `edit.html` 到 `templates/admin/site/`

#### 方法2：使用FTP工具（FileZilla/WinSCP）

```
服务器地址: your-server-ip
用户名: root
密码: your-password
端口: 22 (SFTP)
```

连接后进入 `/www/wwwroot/zjpb/`，直接拖拽文件上传覆盖。

### 第四步：设置脚本权限并执行部署

在1Panel终端或SSH中执行：

```bash
# 进入项目目录
cd /www/wwwroot/zjpb

# 设置脚本执行权限
chmod +x quick_deploy_server.sh

# 执行部署脚本
./quick_deploy_server.sh
```

**脚本会自动完成以下操作：**
1. ✅ 停止应用
2. ✅ 备份当前代码
3. ✅ 安装依赖（如有更新）
4. ✅ 运行数据库迁移
5. ✅ 重启应用
6. ✅ 检查状态

### 第五步：验证部署

**前台验证：**
1. 访问首页，检查页脚是否显示：
   - `© 2025 ZJPB - 焦提示词 | AI工具导航`
   - `浙ICP备2025154782号-1`

2. 访问任意网站详情页，检查：
   - 图标是否正常显示（不是Material Icons文本）
   - 返回首页按钮显示 `←` 而不是 `arrow_back`

**后台验证：**
1. 登录后台 `/admin/login`
2. 检查左侧菜单是否有 **Prompt管理**
3. 点击进入，应该看到3条默认数据：
   - 标签生成
   - 主要功能生成
   - 详细介绍生成

4. 进入 **网站管理** → 编辑任意网站
5. 检查标签区域是否正常显示标签名称（不是空白蓝框）

**AI功能验证：**
1. 创建新网站或编辑现有网站
2. 测试 "AI生成标签" 按钮
3. 测试 "AI生成详细介绍" 按钮
4. 测试 "AI生成主要功能" 按钮

---

## 🐛 常见问题

### Q1: 上传后文件权限错误
```bash
# 设置正确的权限
cd /www/wwwroot/zjpb
chmod 644 *.py
chmod 755 *.sh
```

### Q2: 脚本执行失败
```bash
# 手动执行步骤
cd /www/wwwroot/zjpb
./manage.sh stop
source venv/bin/activate
python migrate_prompts.py
./manage.sh start
```

### Q3: 数据库迁移报错 "表已存在"
这是正常的，说明之前已经运行过，可以忽略。

### Q4: 应用无法启动
```bash
# 查看错误日志
./manage.sh logs

# 或
tail -f logs/error.log
```

---

## 🔄 快速回滚（如出现问题）

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

# 恢复备份
cd /www/wwwroot
rm -rf zjpb
tar -xzf zjpb_backup_20250130.tar.gz

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

---

## 📊 部署检查清单

- [ ] 生产数据库已备份
- [ ] 现有代码已备份
- [ ] 所有文件上传完成
- [ ] 部署脚本执行成功
- [ ] 前台页脚显示正常
- [ ] 详情页图标显示正常
- [ ] 后台Prompt管理菜单存在
- [ ] 标签显示正常
- [ ] AI功能测试通过

---

## 💡 提示

如果你经常需要部署更新，建议配置Git远程仓库（GitHub/Gitee），下次就可以直接 `git pull` 更新，更加方便快捷。
