Skip to content

版本升级指南

版本号规则

元点Admin 遵循 语义化版本 (SemVer)

版本类型格式说明示例
主版本 (MAJOR)X.0.0不兼容的 API 变更、数据库破坏性变更1.0.0 → 2.0.0
次版本 (MINOR)0.X.0新增功能(向后兼容)1.3.0 → 1.4.0
修订版本 (PATCH)0.0.XBug 修复、性能优化(向后兼容)1.2.0 → 1.2.1

版本相关文件位置

文件说明
server/config/version.php当前系统版本号
CHANGELOG.md完整的版本变更记录
server/database/updates/各版本的数据库增量升级脚本
server/database/updates/vX.Y.Z/update.sql具体版本的增量 SQL
server/database/updates/vX.Y.Z/README.md具体版本的升级说明
server/public/install/data/schema.sql最新完整表结构(全新安装用)
server/public/install/data/init.sql最新初始数据(全新安装用)

TIP

schema.sqlinit.sql 是给全新安装用的,已部署的系统升级时使用 updates/ 目录下的增量脚本。

升级前准备

1. 备份数据库

bash
mysqldump -u root -p yd_admin > backup_$(date +%Y%m%d_%H%M%S).sql

2. 备份代码

bash
cp -r /www/wwwroot/ydadmin /www/wwwroot/ydadmin_backup_$(date +%Y%m%d)

3. 查看当前版本

bash
cat server/config/version.php
# 返回类似:'version' => '1.3.0'

4. 查看目标版本的变更

阅读 更新日志,了解当前版本到目标版本之间的所有变更。

升级步骤

Step 1: 拉取最新代码

bash
cd /www/wwwroot/ydadmin
git pull origin main

如果是下载压缩包方式,上传并覆盖(注意不要覆盖 .env 文件)。

Step 2: 更新后端依赖

bash
cd server
composer install --no-dev --optimize-autoloader

Step 3: 执行数据库升级脚本

检查 server/database/updates/ 目录,按版本号顺序依次执行:

bash
# 例如从 v1.3.0 升级到 v1.4.0
mysql -u root -p yd_admin < database/updates/v1.4.0/update.sql

WARNING

先阅读每个版本的 README.md 了解升级注意事项,再执行 SQL。

Step 4: 重新构建前端(如有修改)

bash
cd ../admin
pnpm install
pnpm build

如果没有前端二次开发,新代码中 server/public/admin/ 已包含最新构建产物。

Step 5: 清除缓存

bash
cd ../server
php think clear

Step 6: 重启队列进程

如果使用了 Supervisor 管理队列:

bash
supervisorctl restart ydadmin-queue

Step 7: 验证

  • 访问管理后台,检查页面正常
  • 查看 server/config/version.php 确认版本号已更新
  • 检查 server/runtime/log/ 是否有新的错误日志

跨版本升级

如果需要跨多个版本升级(如 v1.2.0 → v1.4.0),必须按版本号顺序依次执行中间每个版本的升级脚本:

bash
# v1.2.0 → v1.2.1
mysql -u root -p yd_admin < database/updates/v1.2.1/update.sql

# v1.2.1 → v1.3.0
mysql -u root -p yd_admin < database/updates/v1.3.0/update.sql

# v1.3.0 → v1.4.0
mysql -u root -p yd_admin < database/updates/v1.4.0/update.sql

DANGER

不可以跳过中间版本直接执行最新版本的 SQL,否则可能导致数据库结构不一致。

没有对应 updates/ 目录的版本(如 v1.2.0)说明该版本没有数据库变更,跳过即可。

回滚方案

如果升级出现问题:

1. 恢复代码

bash
rm -rf /www/wwwroot/ydadmin
mv /www/wwwroot/ydadmin_backup_20260405 /www/wwwroot/ydadmin

2. 恢复数据库

bash
mysql -u root -p yd_admin < backup_20260405_120000.sql

3. 清除缓存并重启

bash
cd /www/wwwroot/ydadmin/server
php think clear
# 重启 PHP 和队列进程

基于 MIT 许可发布