#!/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 ""