docs: 添加v2.2.0部署文档和脚本
- v2.2.0.patch: Git补丁文件(56KB) - git_patch_deploy_v2.2.sh: 自动化部署脚本 - DEPLOY_v2.2.0.md: 完整部署指南 - DEPLOY_v2.2_CHECKLIST.md: 部署检查清单
This commit is contained in:
457
DEPLOY_v2.2.0.md
Normal file
457
DEPLOY_v2.2.0.md
Normal file
@@ -0,0 +1,457 @@
|
||||
# ZJPB v2.2.0 Git Patch 部署指南
|
||||
|
||||
## 版本信息
|
||||
|
||||
- **版本号**: v2.2.0
|
||||
- **发布日期**: 2025-12-30
|
||||
- **主要功能**: 博查新闻搜索集成
|
||||
|
||||
---
|
||||
|
||||
## 新功能概述
|
||||
|
||||
### 1. 博查Web Search API集成
|
||||
- 自动获取网站相关新闻
|
||||
- 支持手动和批量获取
|
||||
- 新闻来源展示(网站名称+图标)
|
||||
|
||||
### 2. 智能新闻更新机制
|
||||
- **每日首次访问触发更新**:用户访问网站详情页时,如果今天还没有更新过新闻,自动获取最新3条
|
||||
- **历史新闻保留**:如果没有访问,保留历史新闻不会被删除
|
||||
- **一周内新闻**:只获取最近一周的相关新闻
|
||||
- **自动去重**:根据URL防止重复新闻
|
||||
|
||||
### 3. 数据库扩展
|
||||
- News表新增字段:
|
||||
- `source_name`: 新闻来源网站名称
|
||||
- `source_icon`: 新闻来源网站图标URL
|
||||
|
||||
### 4. 用户界面优化
|
||||
- 网站详情页新增"相关新闻"模块
|
||||
- 新闻展示包括:标题、摘要、来源、发布时间、阅读链接
|
||||
- "相似推荐"移至右侧边栏,界面更加清晰
|
||||
|
||||
### 5. 管理功能
|
||||
- 后台新闻管理界面优化
|
||||
- 支持批量获取所有网站的新闻
|
||||
- 定期任务脚本 `fetch_news_cron.py`
|
||||
|
||||
---
|
||||
|
||||
## 部署前准备
|
||||
|
||||
### 1. 环境要求
|
||||
- Python 3.8+
|
||||
- MySQL 5.7+
|
||||
- Git已配置
|
||||
- 虚拟环境已创建
|
||||
|
||||
### 2. 配置检查
|
||||
|
||||
**必需配置**(生产服务器.env文件):
|
||||
```bash
|
||||
# 博查 Web Search API配置(必需!)
|
||||
BOCHA_API_KEY=your_api_key_here
|
||||
BOCHA_BASE_URL=https://api.bocha.cn
|
||||
```
|
||||
|
||||
如果没有配置BOCHA_API_KEY:
|
||||
- 新闻功能不会运行
|
||||
- 不会影响其他功能
|
||||
- 详情页会正常显示,只是没有新闻模块
|
||||
|
||||
### 3. 备份数据库
|
||||
|
||||
在1Panel中备份数据库:
|
||||
```bash
|
||||
# 或者使用命令行
|
||||
mysqldump -h 112.124.42.38 -u ai_nav -p ai_nav > backup_before_v2.2_$(date +%Y%m%d).sql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 部署步骤
|
||||
|
||||
### 方法一:Git Patch部署(推荐)
|
||||
|
||||
#### 1. 上传文件到服务器
|
||||
|
||||
需要上传2个文件到 `/opt/1panel/apps/zjpb/`:
|
||||
- `v2.2.0.patch` (56KB)
|
||||
- `git_patch_deploy_v2.2.sh`
|
||||
|
||||
**使用1Panel文件管理器**或**SCP命令**:
|
||||
```bash
|
||||
scp v2.2.0.patch root@your-server:/opt/1panel/apps/zjpb/
|
||||
scp git_patch_deploy_v2.2.sh root@your-server:/opt/1panel/apps/zjpb/
|
||||
```
|
||||
|
||||
#### 2. 执行部署脚本
|
||||
|
||||
SSH登录服务器或使用1Panel终端:
|
||||
```bash
|
||||
cd /opt/1panel/apps/zjpb
|
||||
|
||||
# 赋予执行权限
|
||||
chmod +x git_patch_deploy_v2.2.sh
|
||||
|
||||
# 执行部署
|
||||
./git_patch_deploy_v2.2.sh
|
||||
```
|
||||
|
||||
#### 3. 脚本自动完成的操作
|
||||
|
||||
```
|
||||
1. 停止应用
|
||||
2. 检查Git状态
|
||||
3. 备份未提交的修改(如有)
|
||||
4. 应用v2.2.0补丁
|
||||
- 添加NewsSearcher工具类
|
||||
- 更新app.py(新闻路由+智能更新)
|
||||
- 更新models.py(News字段扩展)
|
||||
- 更新config.py(博查API配置)
|
||||
- 更新detail_new.html(新闻展示UI)
|
||||
- 添加数据库迁移脚本
|
||||
- 添加测试脚本和定期任务脚本
|
||||
5. 提交到Git
|
||||
6. 激活虚拟环境
|
||||
7. 安装依赖
|
||||
8. 运行数据库迁移(添加source_name和source_icon字段)
|
||||
9. 重启应用
|
||||
10. 检查状态
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 部署后验证
|
||||
|
||||
### 1. 前台验证
|
||||
|
||||
**访问网站详情页**:
|
||||
```
|
||||
http://your-domain.com/site/xxxxxxxx
|
||||
```
|
||||
|
||||
检查项:
|
||||
- [ ] 页面正常加载
|
||||
- [ ] 如果配置了BOCHA_API_KEY,首次访问会自动获取新闻
|
||||
- [ ] "相关新闻"模块显示在左侧主栏
|
||||
- [ ] "相似推荐"显示在右侧边栏
|
||||
- [ ] 新闻显示来源名称和图标
|
||||
- [ ] 点击新闻标题可以跳转到原文
|
||||
|
||||
### 2. 后台验证
|
||||
|
||||
**登录后台管理**:
|
||||
```
|
||||
http://your-domain.com/admin/login
|
||||
```
|
||||
|
||||
检查项:
|
||||
- [ ] 进入"新闻管理" `/admin/newsadmin/`
|
||||
- [ ] 列表显示包含source_name和source_icon
|
||||
- [ ] 可以搜索和过滤新闻
|
||||
- [ ] 编辑新闻时可以看到新字段
|
||||
|
||||
### 3. 数据库验证
|
||||
|
||||
```sql
|
||||
-- 检查news表结构
|
||||
DESCRIBE news;
|
||||
|
||||
-- 应该看到新字段
|
||||
-- source_name VARCHAR(100)
|
||||
-- source_icon VARCHAR(500)
|
||||
|
||||
-- 检查现有新闻数据
|
||||
SELECT id, title, source_name, source_icon
|
||||
FROM news
|
||||
ORDER BY created_at DESC
|
||||
LIMIT 5;
|
||||
```
|
||||
|
||||
### 4. API测试(可选)
|
||||
|
||||
如果配置了BOCHA_API_KEY,可以测试API:
|
||||
|
||||
```bash
|
||||
# 在服务器上
|
||||
cd /opt/1panel/apps/zjpb
|
||||
source venv/bin/activate
|
||||
|
||||
# 运行测试脚本
|
||||
python test_news_feature.py
|
||||
```
|
||||
|
||||
### 5. 日志检查
|
||||
|
||||
```bash
|
||||
# 查看应用日志
|
||||
./manage.sh logs
|
||||
|
||||
# 或者查看Gunicorn日志
|
||||
tail -f logs/gunicorn_error.log
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 配置博查API(重要)
|
||||
|
||||
### 1. 获取API Key
|
||||
|
||||
如果还没有博查API Key:
|
||||
1. 访问 https://api.bocha.cn
|
||||
2. 注册并获取API Key
|
||||
3. 充值(建议至少10元,用于测试)
|
||||
|
||||
### 2. 配置.env文件
|
||||
|
||||
编辑生产服务器的.env文件:
|
||||
```bash
|
||||
nano /opt/1panel/apps/zjpb/.env
|
||||
```
|
||||
|
||||
添加或更新:
|
||||
```bash
|
||||
# 博查 Web Search API配置
|
||||
BOCHA_API_KEY=sk-your-actual-api-key-here
|
||||
BOCHA_BASE_URL=https://api.bocha.cn
|
||||
```
|
||||
|
||||
### 3. 重启应用
|
||||
|
||||
```bash
|
||||
cd /opt/1panel/apps/zjpb
|
||||
./manage.sh restart
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 定期任务配置(可选)
|
||||
|
||||
如果想定期批量更新所有网站的新闻,可以配置cron任务:
|
||||
|
||||
### 1. 编辑crontab
|
||||
|
||||
```bash
|
||||
crontab -e
|
||||
```
|
||||
|
||||
### 2. 添加定时任务
|
||||
|
||||
```bash
|
||||
# 每天凌晨2点更新前10个网站的新闻(每个网站获取3条)
|
||||
0 2 * * * cd /opt/1panel/apps/zjpb && source venv/bin/activate && python fetch_news_cron.py --limit 10 --count 3 >> logs/cron_news.log 2>&1
|
||||
```
|
||||
|
||||
### 3. 查看定期任务日志
|
||||
|
||||
```bash
|
||||
tail -f /opt/1panel/apps/zjpb/logs/cron_news.log
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 常见问题排查
|
||||
|
||||
### 1. 新闻不显示
|
||||
|
||||
**检查项**:
|
||||
- BOCHA_API_KEY是否配置正确?
|
||||
- API Key是否有余额?
|
||||
- 网站是否有相关新闻?
|
||||
- 查看应用日志是否有错误
|
||||
|
||||
**测试命令**:
|
||||
```bash
|
||||
cd /opt/1panel/apps/zjpb
|
||||
source venv/bin/activate
|
||||
python test_news_feature.py
|
||||
```
|
||||
|
||||
### 2. 数据库迁移失败
|
||||
|
||||
**症状**:source_name或source_icon字段不存在
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
cd /opt/1panel/apps/zjpb
|
||||
source venv/bin/activate
|
||||
python migrate_news_fields.py
|
||||
```
|
||||
|
||||
### 3. 页面报错
|
||||
|
||||
**检查**:
|
||||
```bash
|
||||
# 查看错误日志
|
||||
./manage.sh logs
|
||||
|
||||
# 检查进程状态
|
||||
./manage.sh status
|
||||
|
||||
# 重启应用
|
||||
./manage.sh restart
|
||||
```
|
||||
|
||||
### 4. 补丁应用失败
|
||||
|
||||
**症状**:`git apply --check` 失败
|
||||
|
||||
**原因**:可能有未提交的本地修改冲突
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
# 查看冲突文件
|
||||
git status
|
||||
|
||||
# 备份本地修改
|
||||
git stash
|
||||
|
||||
# 重新应用补丁
|
||||
git apply v2.2.0.patch
|
||||
|
||||
# 如需恢复本地修改
|
||||
git stash pop
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 回滚方案
|
||||
|
||||
如果部署后发现问题,可以快速回滚:
|
||||
|
||||
### 1. 回滚代码
|
||||
|
||||
```bash
|
||||
cd /opt/1panel/apps/zjpb
|
||||
./manage.sh stop
|
||||
|
||||
# 回滚到上一个提交(v2.1.0)
|
||||
git reset --hard HEAD~2
|
||||
|
||||
# 如果有stash备份,恢复它
|
||||
git stash list
|
||||
git stash pop
|
||||
|
||||
./manage.sh start
|
||||
```
|
||||
|
||||
### 2. 回滚数据库(如需要)
|
||||
|
||||
```bash
|
||||
# 删除新添加的字段
|
||||
mysql -h 112.124.42.38 -u ai_nav -p ai_nav
|
||||
|
||||
ALTER TABLE news DROP COLUMN source_name;
|
||||
ALTER TABLE news DROP COLUMN source_icon;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 性能说明
|
||||
|
||||
### 1. 智能更新策略
|
||||
|
||||
- **触发条件**:用户首次访问网站详情页 + 今天还没更新过新闻
|
||||
- **更新频率**:每个网站每天最多更新一次
|
||||
- **查询数量**:每次获取3条新闻
|
||||
- **时间范围**:最近一周内的新闻
|
||||
- **API调用**:只有满足更新条件时才会调用
|
||||
|
||||
### 2. 对用户体验的影响
|
||||
|
||||
- **首次加载**:如果触发新闻更新,页面加载时间增加1-3秒
|
||||
- **后续访问**:使用缓存的新闻,无额外延迟
|
||||
- **错误处理**:API调用失败不影响页面正常显示
|
||||
- **异步加载**:后续可优化为异步加载新闻模块
|
||||
|
||||
### 3. 成本估算
|
||||
|
||||
- 假设每天100个网站被访问,每个网站触发一次新闻更新
|
||||
- 每次查询约0.01元(参考博查API定价)
|
||||
- 每天成本约1元,每月约30元
|
||||
|
||||
---
|
||||
|
||||
## 版本对比
|
||||
|
||||
| 功能 | v2.1.0 | v2.2.0 |
|
||||
|------|--------|--------|
|
||||
| Prompt管理 | ✅ | ✅ |
|
||||
| 标签生成 | ✅ | ✅ |
|
||||
| 功能生成 | ✅ | ✅ |
|
||||
| 详细介绍生成 | ✅ | ✅ |
|
||||
| 新闻搜索 | ❌ | ✅ |
|
||||
| 新闻展示 | ❌ | ✅ |
|
||||
| 智能更新 | ❌ | ✅ |
|
||||
| 新闻来源信息 | ❌ | ✅ |
|
||||
| 定期任务 | ❌ | ✅ |
|
||||
|
||||
---
|
||||
|
||||
## 后续优化建议
|
||||
|
||||
1. **新闻模块异步加载**:使用AJAX加载新闻,不阻塞页面
|
||||
2. **缓存优化**:使用Redis缓存新闻数据
|
||||
3. **全文搜索**:支持在新闻内容中搜索关键词
|
||||
4. **RSS订阅**:为网站新闻生成RSS feed
|
||||
5. **新闻分类**:根据新闻类型自动分类
|
||||
6. **新闻推荐**:基于用户行为推荐相关新闻
|
||||
|
||||
---
|
||||
|
||||
## 完整部署命令(一键复制)
|
||||
|
||||
```bash
|
||||
# SSH登录服务器后执行
|
||||
cd /opt/1panel/apps/zjpb
|
||||
|
||||
# 检查上传的文件
|
||||
ls -lh v2.2.0.patch git_patch_deploy_v2.2.sh
|
||||
|
||||
# 赋予执行权限
|
||||
chmod +x git_patch_deploy_v2.2.sh
|
||||
|
||||
# 执行部署
|
||||
./git_patch_deploy_v2.2.sh
|
||||
|
||||
# 配置API Key(如果还没配置)
|
||||
nano .env
|
||||
# 添加:BOCHA_API_KEY=your-key-here
|
||||
|
||||
# 重启应用(如果修改了.env)
|
||||
./manage.sh restart
|
||||
|
||||
# 验证部署
|
||||
./manage.sh status
|
||||
git log --oneline -3
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 技术支持
|
||||
|
||||
如有问题,请检查:
|
||||
1. 应用日志:`./manage.sh logs`
|
||||
2. 数据库连接:检查.env中的DB_配置
|
||||
3. API配置:检查BOCHA_API_KEY是否正确
|
||||
4. 网络连接:确认服务器可以访问 api.bocha.cn
|
||||
|
||||
---
|
||||
|
||||
## 更新日志
|
||||
|
||||
### v2.2.0 (2025-12-30)
|
||||
- 新增博查Web Search API集成
|
||||
- 新增智能新闻更新机制
|
||||
- News模型扩展(source_name, source_icon)
|
||||
- 新增网站详情页新闻模块
|
||||
- 新增定期任务脚本和测试工具
|
||||
- 优化详情页布局(新闻左侧,推荐右侧)
|
||||
|
||||
---
|
||||
|
||||
**部署文档版本**: v1.0
|
||||
**最后更新**: 2025-12-30
|
||||
**维护者**: ZJPB开发团队
|
||||
298
DEPLOY_v2.2_CHECKLIST.md
Normal file
298
DEPLOY_v2.2_CHECKLIST.md
Normal file
@@ -0,0 +1,298 @@
|
||||
# v2.2.0 部署检查清单
|
||||
|
||||
## 部署前准备
|
||||
|
||||
### 1. 本地文件准备
|
||||
- [x] v2.2.0.patch (56KB) - 已生成
|
||||
- [x] git_patch_deploy_v2.2.sh - 已创建
|
||||
- [x] DEPLOY_v2.2.0.md - 完整部署文档
|
||||
- [x] migrate_news_fields.py - 数据库迁移脚本
|
||||
|
||||
### 2. 备份(重要!)
|
||||
- [ ] 生产数据库已备份
|
||||
```bash
|
||||
# 在1Panel中备份或执行
|
||||
mysqldump -h 112.124.42.38 -u ai_nav -p ai_nav > backup_v2.2_$(date +%Y%m%d).sql
|
||||
```
|
||||
- [ ] 代码已备份(Git会自动保存)
|
||||
|
||||
### 3. 环境检查
|
||||
- [ ] 服务器可以访问 api.bocha.cn
|
||||
- [ ] Python 3.8+ 已安装
|
||||
- [ ] 虚拟环境已创建
|
||||
- [ ] Git已配置
|
||||
|
||||
---
|
||||
|
||||
## 部署步骤
|
||||
|
||||
### 步骤1:上传文件
|
||||
上传以下2个文件到 `/opt/1panel/apps/zjpb/`:
|
||||
- [ ] v2.2.0.patch
|
||||
- [ ] git_patch_deploy_v2.2.sh
|
||||
|
||||
**使用1Panel文件管理器**或**SCP命令**:
|
||||
```bash
|
||||
scp v2.2.0.patch root@your-server:/opt/1panel/apps/zjpb/
|
||||
scp git_patch_deploy_v2.2.sh root@your-server:/opt/1panel/apps/zjpb/
|
||||
```
|
||||
|
||||
### 步骤2:执行部署
|
||||
```bash
|
||||
cd /opt/1panel/apps/zjpb
|
||||
chmod +x git_patch_deploy_v2.2.sh
|
||||
./git_patch_deploy_v2.2.sh
|
||||
```
|
||||
|
||||
### 步骤3:配置API Key
|
||||
编辑.env文件,添加博查API配置:
|
||||
```bash
|
||||
nano /opt/1panel/apps/zjpb/.env
|
||||
```
|
||||
|
||||
添加:
|
||||
```bash
|
||||
BOCHA_API_KEY=sk-76d0236a50d445ae92e75b634ed5313c
|
||||
BOCHA_BASE_URL=https://api.bocha.cn
|
||||
```
|
||||
|
||||
### 步骤4:重启应用
|
||||
```bash
|
||||
cd /opt/1panel/apps/zjpb
|
||||
./manage.sh restart
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 部署验证
|
||||
|
||||
### 前台验证
|
||||
- [ ] 访问首页正常
|
||||
- [ ] 访问网站详情页正常
|
||||
- [ ] "相关新闻"模块显示(首次访问会触发获取)
|
||||
- [ ] 新闻可以点击查看原文
|
||||
- [ ] "相似推荐"在右侧边栏显示
|
||||
|
||||
### 后台验证
|
||||
- [ ] 登录后台成功 `/admin/login`
|
||||
- [ ] 进入"新闻管理" `/admin/newsadmin/`
|
||||
- [ ] 可以看到新闻列表(如果已有新闻)
|
||||
- [ ] 新闻列表显示source_name和source_icon
|
||||
|
||||
### 数据库验证
|
||||
```sql
|
||||
-- 检查news表新字段
|
||||
DESCRIBE news;
|
||||
-- 应该看到:
|
||||
-- source_name VARCHAR(100)
|
||||
-- source_icon VARCHAR(500)
|
||||
```
|
||||
|
||||
### 功能测试
|
||||
- [ ] 访问一个网站详情页,检查是否自动获取新闻
|
||||
- [ ] 刷新页面,新闻应该不会重复获取(使用缓存)
|
||||
- [ ] 第二天首次访问,应该会更新新闻
|
||||
|
||||
---
|
||||
|
||||
## 部署后检查
|
||||
|
||||
### 日志检查
|
||||
```bash
|
||||
cd /opt/1panel/apps/zjpb
|
||||
./manage.sh logs
|
||||
```
|
||||
|
||||
检查是否有错误信息:
|
||||
- [ ] 没有Python异常
|
||||
- [ ] 没有数据库错误
|
||||
- [ ] 没有API调用错误
|
||||
|
||||
### Git状态
|
||||
```bash
|
||||
git log --oneline -3
|
||||
```
|
||||
|
||||
应该看到v2.2.0的提交:
|
||||
- [ ] release: v2.2.0 相关的提交记录
|
||||
|
||||
### 应用状态
|
||||
```bash
|
||||
./manage.sh status
|
||||
```
|
||||
|
||||
- [ ] zjpb 正在运行
|
||||
- [ ] 进程PID正常
|
||||
|
||||
---
|
||||
|
||||
## 问题排查
|
||||
|
||||
### 1. 新闻不显示
|
||||
**可能原因**:
|
||||
- BOCHA_API_KEY未配置或配置错误
|
||||
- API余额不足
|
||||
- 网站没有相关新闻
|
||||
|
||||
**排查步骤**:
|
||||
```bash
|
||||
# 测试API配置
|
||||
cd /opt/1panel/apps/zjpb
|
||||
source venv/bin/activate
|
||||
python test_news_feature.py
|
||||
|
||||
# 检查环境变量
|
||||
cat .env | grep BOCHA
|
||||
|
||||
# 查看日志
|
||||
./manage.sh logs | grep -i "news\|bocha"
|
||||
```
|
||||
|
||||
### 2. 数据库迁移失败
|
||||
**症状**:字段不存在错误
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
cd /opt/1panel/apps/zjpb
|
||||
source venv/bin/activate
|
||||
python migrate_news_fields.py
|
||||
```
|
||||
|
||||
### 3. 补丁应用失败
|
||||
**症状**:git apply报错
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
# 查看冲突
|
||||
git status
|
||||
|
||||
# 备份修改
|
||||
git stash
|
||||
|
||||
# 重新应用
|
||||
git apply v2.2.0.patch
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 回滚方案(如需要)
|
||||
|
||||
### 快速回滚
|
||||
```bash
|
||||
cd /opt/1panel/apps/zjpb
|
||||
./manage.sh stop
|
||||
|
||||
# 回滚到v2.1.0
|
||||
git reset --hard HEAD~2
|
||||
|
||||
# 重启
|
||||
./manage.sh start
|
||||
```
|
||||
|
||||
### 恢复数据库(可选)
|
||||
```bash
|
||||
mysql -h 112.124.42.38 -u ai_nav -p ai_nav < backup_v2.2_YYYYMMDD.sql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 完成标记
|
||||
|
||||
部署完成后,确认以下所有项:
|
||||
- [ ] 补丁应用成功
|
||||
- [ ] 数据库迁移成功
|
||||
- [ ] 应用启动正常
|
||||
- [ ] 前台功能正常
|
||||
- [ ] 后台功能正常
|
||||
- [ ] 新闻功能测试通过
|
||||
- [ ] 日志无错误
|
||||
- [ ] Git提交记录正确
|
||||
|
||||
---
|
||||
|
||||
## 一键部署命令(完整版)
|
||||
|
||||
```bash
|
||||
# ============================================
|
||||
# v2.2.0 完整部署命令
|
||||
# ============================================
|
||||
|
||||
# 1. 进入项目目录
|
||||
cd /opt/1panel/apps/zjpb
|
||||
|
||||
# 2. 检查上传的文件
|
||||
ls -lh v2.2.0.patch git_patch_deploy_v2.2.sh
|
||||
|
||||
# 3. 执行部署
|
||||
chmod +x git_patch_deploy_v2.2.sh
|
||||
./git_patch_deploy_v2.2.sh
|
||||
|
||||
# 4. 配置API Key(如果.env中还没有)
|
||||
nano .env
|
||||
# 添加以下两行:
|
||||
# BOCHA_API_KEY=sk-76d0236a50d445ae92e75b634ed5313c
|
||||
# BOCHA_BASE_URL=https://api.bocha.cn
|
||||
|
||||
# 5. 重启应用
|
||||
./manage.sh restart
|
||||
|
||||
# 6. 验证部署
|
||||
./manage.sh status
|
||||
git log --oneline -3
|
||||
|
||||
# 7. 查看日志(可选)
|
||||
./manage.sh logs
|
||||
|
||||
echo "部署完成!请访问网站测试功能"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 预期结果
|
||||
|
||||
执行部署脚本后,应该看到类似输出:
|
||||
|
||||
```
|
||||
================================
|
||||
ZJPB v2.2 Git Patch 部署
|
||||
================================
|
||||
|
||||
当前目录: /opt/1panel/apps/zjpb
|
||||
|
||||
1. 停止应用...
|
||||
2. 检查Git状态...
|
||||
3. 备份当前修改(如有)...
|
||||
4. 应用v2.2.0补丁...
|
||||
>>> 补丁应用成功
|
||||
5. 提交更改到Git...
|
||||
6. 激活虚拟环境...
|
||||
7. 检查依赖...
|
||||
8. 运行数据库迁移...
|
||||
正在创建 source_name 和 source_icon 字段...
|
||||
>>> 数据库迁移成功
|
||||
9. 重启应用...
|
||||
10. 检查应用状态...
|
||||
zjpb 正在运行 (PID: xxxx)
|
||||
|
||||
================================
|
||||
>>> 部署完成!
|
||||
================================
|
||||
|
||||
Git提交历史:
|
||||
xxxxxxx release: v2.2.0 - 博查新闻搜索功能
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 时间估算
|
||||
|
||||
- 上传文件:1-2分钟
|
||||
- 执行部署:3-5分钟
|
||||
- 配置验证:2-3分钟
|
||||
- **总计**:约10分钟
|
||||
|
||||
---
|
||||
|
||||
**检查清单版本**: v1.0
|
||||
**创建日期**: 2025-12-30
|
||||
**适用版本**: ZJPB v2.2.0
|
||||
110
git_patch_deploy_v2.2.sh
Normal file
110
git_patch_deploy_v2.2.sh
Normal file
@@ -0,0 +1,110 @@
|
||||
#!/bin/bash
|
||||
# ZJPB v2.2 Git Patch 部署脚本
|
||||
# 在生产服务器上执行
|
||||
|
||||
echo "================================"
|
||||
echo "ZJPB v2.2 Git Patch 部署"
|
||||
echo "================================"
|
||||
echo ""
|
||||
|
||||
# 项目路径
|
||||
PROJECT_DIR="/opt/1panel/apps/zjpb"
|
||||
|
||||
# 检查是否在正确目录
|
||||
cd $PROJECT_DIR || { echo ">>> 项目目录不存在"; exit 1; }
|
||||
|
||||
echo "当前目录: $(pwd)"
|
||||
echo ""
|
||||
|
||||
# 停止应用
|
||||
echo "1. 停止应用..."
|
||||
./manage.sh stop
|
||||
sleep 2
|
||||
|
||||
# 检查Git状态
|
||||
echo "2. 检查Git状态..."
|
||||
git status
|
||||
|
||||
# 备份未提交的修改(如果有)
|
||||
echo "3. 备份当前修改(如有)..."
|
||||
if ! git diff-index --quiet HEAD --; then
|
||||
echo " 发现未提交的修改,正在保存..."
|
||||
git stash save "backup_before_v2.2_$(date +%Y%m%d_%H%M%S)"
|
||||
fi
|
||||
|
||||
# 应用patch
|
||||
echo "4. 应用v2.2.0补丁..."
|
||||
if [ -f "v2.2.0.patch" ]; then
|
||||
git apply --check v2.2.0.patch
|
||||
if [ $? -eq 0 ]; then
|
||||
git apply v2.2.0.patch
|
||||
echo " >>> 补丁应用成功"
|
||||
else
|
||||
echo " >>> 补丁应用失败,请检查"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo " >>> v2.2.0.patch 文件不存在"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 提交更改
|
||||
echo "5. 提交更改到Git..."
|
||||
git add .
|
||||
git commit -m "release: v2.2.0 - 博查新闻搜索功能
|
||||
|
||||
通过patch部署,包含以下更新:
|
||||
- 集成博查Web Search API
|
||||
- 新闻自动获取和展示
|
||||
- 智能新闻更新机制(每日首次访问触发)
|
||||
- News模型扩展(source_name, source_icon)
|
||||
- 网站详情页新闻模块
|
||||
- 定期任务脚本和测试工具
|
||||
"
|
||||
|
||||
# 激活虚拟环境
|
||||
echo "6. 激活虚拟环境..."
|
||||
source venv/bin/activate
|
||||
|
||||
# 安装依赖(检查是否有新依赖)
|
||||
echo "7. 检查依赖..."
|
||||
pip install -r requirements.txt -q
|
||||
|
||||
# 运行数据库迁移
|
||||
echo "8. 运行数据库迁移..."
|
||||
if [ -f "migrate_news_fields.py" ]; then
|
||||
python migrate_news_fields.py
|
||||
if [ $? -eq 0 ]; then
|
||||
echo " >>> 数据库迁移成功"
|
||||
else
|
||||
echo " >>> 数据库迁移失败"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo " >>> migrate_news_fields.py 不存在,跳过"
|
||||
fi
|
||||
|
||||
# 重启应用
|
||||
echo "9. 重启应用..."
|
||||
./manage.sh start
|
||||
sleep 3
|
||||
|
||||
# 检查状态
|
||||
echo "10. 检查应用状态..."
|
||||
./manage.sh status
|
||||
|
||||
echo ""
|
||||
echo "================================"
|
||||
echo ">>> 部署完成!"
|
||||
echo "================================"
|
||||
echo ""
|
||||
echo "Git提交历史:"
|
||||
git log --oneline -3
|
||||
echo ""
|
||||
echo "请访问网站验证更新是否成功"
|
||||
echo ""
|
||||
echo "验证清单:"
|
||||
echo "1. 访问任意网站详情页,检查是否显示相关新闻"
|
||||
echo "2. 登录后台 /admin/newsadmin/ 查看新闻管理"
|
||||
echo "3. 检查日志确认没有错误"
|
||||
echo ""
|
||||
1699
v2.2.0.patch
Normal file
1699
v2.2.0.patch
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user