安装升级与打包
XYGo Admin 2026-04-22 3 次阅读
安装/卸载流程、升级机制、ZIP打包分发
安装流程
[1/9] 解压 ZIP 到临时目录
[2/9] 读取 addon.yaml,校验元信息
[3/9] 检查安装状态(全新安装 / 升级 / 覆盖重装 / 降级拒绝)
[4/9] 执行 install SQL(全新安装)或 upgrade SQL(升级)
[5/9] 安装扩展菜单(从 addon.yaml 声明式写入数据库)
[6/9] 备份旧版本文件(仅升级时,备份到 .backup/{name}-{oldVer}/)
[7/9] 复制扩展文件到隔离目录
[8/9] 更新 addons/addons.go(自动重新生成导入声明)
[9/9] 记录安装信息到 xy_addon 表
卸载流程
[1/6] 确认卸载
[2/6] 执行 uninstall SQL(删表等)
[3/6] 卸载扩展菜单(按 remark='addon:{name}' 批量删除)
[4/6] 删除扩展目录(server/addons/{name}/ + web/src/addons/{name}/)
[5/6] 更新 addons/addons.go
[6/6] 更新 xy_addon 状态为已卸载
升级注意事项
- 升级时执行
upgrade/目录下的 SQL,不是install/ - 升级前自动备份旧版文件到
server/addons/.backup/{name}-{oldVer}/ addon.yaml中的min_upgrade_from可以限制最低可升级版本- 升级完成后会显示
changelog中的更新日志 - 菜单会先清除再重新写入(支持菜单变更)
打包分发
bash
go run tools.go addon pack shop
生成 shop-1.0.0.zip,包含:
shop-1.0.0.zip
├── addon.yaml
├── server/
├── web/
├── install/
├── uninstall/
└── upgrade/
用户拿到 ZIP 后重命名为 shop.zip,放入 server/addons/ 目录,执行 addon install shop 即可。
完整开发流程
bash
# 1. 创建扩展骨架
cd server
go run tools.go addon create
# 2. 编辑建表 SQL
# 修改 server/addons/shop/install/pgsql.sql
# 3. 手动执行建表 SQL(开发阶段)
# 4. 生成数据模型
gf gen dao
# 5. 编写业务逻辑(controller/ 和 logic/)
# 6. 重启后端
# 7. 前端开发(web/src/addons/shop/views/)
# 8. 测试通过后打包
go run tools.go addon pack shop
注意事项
不要做的事
- 不要修改
server/internal/下的核心代码 - 不要在扩展中直接操作非
xy_{扩展名}_前缀的数据表 - 不要注册与系统或其他扩展重名的路由、事件、任务
- 不要在 install SQL 中手写菜单插入语句(使用 addon.yaml 声明)
命名规范汇总
| 项目 | 规范 | 示例 |
|---|---|---|
| 扩展标识 | 英文小写 | shop |
| 数据表 | xy_{扩展名}_xxx |
xy_shop_order |
| API 路由 | /admin/{扩展名}/{实体}/{操作} |
/admin/shop/order/list |
| 菜单 name | {PascalCase扩展名}XxxYyy |
ShopOrderList |
| WebSocket 事件 | {扩展名}.{事件名} |
shop.orderNotify |
| 队列 Topic | {扩展名}.{模块}.{动作} |
shop.order.payment |
| 定时任务 name | {扩展名}.{任务描述} |
shop.order_timeout |
| Auth 端点 name | 描述性名称 | supplier |