Skip to content

升级指南

本指南将帮助您安全地升级 Yuan-ICP 系统到新版本。

升级前准备

1. 备份重要数据

在开始升级前,请务必备份以下内容:

bash
# 备份数据库文件(如果使用SQLite)
cp data/sqlite.db data/sqlite.db.backup.$(date +%Y%m%d)

# 备份配置文件
cp config/database.php config/database.php.backup.$(date +%Y%m%d)

# 备份上传的文件
tar -czf uploads_backup.$(date +%Y%m%d).tar.gz uploads/

2. 检查系统要求

确保您的服务器满足新版本的环境要求

3. 查看更新日志

查看新版本的更新日志,了解变更内容和注意事项

升级步骤

方法一:手动升级(推荐)

  1. 下载新版本

    bash
    # 下载最新版本
    wget https://github.com/bbb-lsy07/Yuan-ICP/archive/refs/tags/v2.0.0.tar.gz
    tar -zxvf v2.0.0.tar.gz
  2. 替换文件

    bash
    # 备份当前版本
    mv yuan-icp yuan-icp-backup
    
    # 解压新版本
    mv yuan-icp-2.0.0 yuan-icp
    
    # 恢复配置文件
    cp yuan-icp-backup/config/database.php yuan-icp/config/
    cp yuan-icp-backup/config/settings.php yuan-icp/config/ 2>/dev/null || true
    
    # 恢复数据文件
    cp yuan-icp-backup/data/sqlite.db yuan-icp/data/
    
    # 恢复上传文件
    cp -r yuan-icp-backup/uploads/* yuan-icp/uploads/ 2>/dev/null || true
    cp -r yuan-icp-backup/themes/* yuan-icp/themes/ 2>/dev/null || true
    cp -r yuan-icp-backup/plugins/* yuan-icp/plugins/ 2>/dev/null || true
  3. 运行升级脚本(如果有)

    bash
    # 如果有升级脚本
    php upgrade.php

方法二:Git 升级(如果使用Git管理)

bash
# 拉取最新代码
git pull origin main

# 更新依赖
composer install

# 运行数据库迁移(如果有)
php migrate.php

升级后检查

1. 功能测试

  • 访问前台首页,检查是否正常显示
  • 测试申请功能是否正常工作
  • 登录后台,检查所有功能是否正常

2. 数据验证

  • 检查现有数据是否完整
  • 验证备案申请状态是否正确
  • 检查公告和设置是否保留

3. 性能检查

  • 检查页面加载速度
  • 验证后台操作响应时间
  • 测试邮件发送功能(如果配置了)

常见升级问题

数据库结构变更

如果新版本包含数据库结构变更,可能需要手动执行SQL迁移脚本:

sql
-- 示例:添加新字段
ALTER TABLE applications ADD COLUMN new_field VARCHAR(255);

配置文件变更

检查新版本的配置文件格式,可能需要手动更新:

php
// config/settings.php 示例更新
'smtp_port' => 587, // 从465改为587

主题兼容性

如果自定义了主题,检查新版本的主题系统是否有变更:

  1. 检查模板文件路径是否变化
  2. 验证模板变量是否兼容
  3. 测试主题功能是否正常

回滚方案

如果升级失败,可以回滚到之前的版本:

bash
# 停止当前服务
sudo systemctl stop nginx

# 恢复备份
rm -rf yuan-icp
mv yuan-icp-backup yuan-icp

# 恢复文件权限
chmod -R 755 yuan-icp
chown -R www-data:www-data yuan-icp

# 重启服务
sudo systemctl start nginx

最佳实践

  1. 在测试环境先升级: 在生产环境升级前,先在测试环境测试
  2. 选择低峰时段: 在访问量少的时候进行升级
  3. 通知用户: 提前通知用户系统维护时间
  4. 监控系统: 升级后密切监控系统运行状态

获取帮助

如果遇到升级问题:

  1. 查看 GitHub Issues
  2. 参考 更新日志
  3. 联系 社区支持

下一步

基于 MIT 协议发布