# 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 ```