版本升级指南
版本号规则
元点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.X | Bug 修复、性能优化(向后兼容) | 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.sql 和 init.sql 是给全新安装用的,已部署的系统升级时使用 updates/ 目录下的增量脚本。
升级前准备
1. 备份数据库
bash
mysqldump -u root -p yd_admin > backup_$(date +%Y%m%d_%H%M%S).sql2. 备份代码
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-autoloaderStep 3: 执行数据库升级脚本
检查 server/database/updates/ 目录,按版本号顺序依次执行:
bash
# 例如从 v1.3.0 升级到 v1.4.0
mysql -u root -p yd_admin < database/updates/v1.4.0/update.sqlWARNING
先阅读每个版本的 README.md 了解升级注意事项,再执行 SQL。
Step 4: 重新构建前端(如有修改)
bash
cd ../admin
pnpm install
pnpm build如果没有前端二次开发,新代码中 server/public/admin/ 已包含最新构建产物。
Step 5: 清除缓存
bash
cd ../server
php think clearStep 6: 重启队列进程
如果使用了 Supervisor 管理队列:
bash
supervisorctl restart ydadmin-queueStep 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.sqlDANGER
不可以跳过中间版本直接执行最新版本的 SQL,否则可能导致数据库结构不一致。
没有对应 updates/ 目录的版本(如 v1.2.0)说明该版本没有数据库变更,跳过即可。
回滚方案
如果升级出现问题:
1. 恢复代码
bash
rm -rf /www/wwwroot/ydadmin
mv /www/wwwroot/ydadmin_backup_20260405 /www/wwwroot/ydadmin2. 恢复数据库
bash
mysql -u root -p yd_admin < backup_20260405_120000.sql3. 清除缓存并重启
bash
cd /www/wwwroot/ydadmin/server
php think clear
# 重启 PHP 和队列进程