服务命令
服务端通过 Cobra 提供统一 CLI,入口为 go run .(编译后为 ./server_api)。所有子命令一览:
| 命令 | 说明 |
|---|---|
service admin | 启动管理端 API 服务 |
service api | 启动用户端 API 服务 |
version | 查看系统版本号 |
plugin validate | 校验插件发行包 |
plugin generate | 扫描插件目录并生成静态注册文件 |
plugin install | 安装插件发行包 |
plugin upgrade | 升级已安装插件 |
plugin remove | 可恢复移除插件 |
plugin purge | 彻底清理插件 |
启动服务(service admin / service api)
启动对应端的服务,参数:
| 参数 | 说明 | 默认 |
|---|---|---|
-c, --config | 配置文件路径 | config.yaml |
go run . service admin -c config.yaml
go run . service api -c config.yaml查看版本(version)
输出版本号,版本号来自 config.yaml 顶层 version(启动校验必填):
| 参数 | 说明 | 默认 |
|---|---|---|
-c, --config | 配置文件路径 | config.yaml |
$ go run . version -c config.yaml
server_api v0.0.3配置缺失或 version 未设置时返回明确错误(version 不能为空,请在配置文件中设置系统版本号)。
校验插件包(plugin validate)
go run . plugin validate /path/news-v1.0.0.zip校验发行包:ZIP 大小与文件数上限、路径穿越与符号链接、核心版本精确匹配、后端入口存在、菜单业务键唯一且父级存在、页面路径前缀、迁移 SHA256 一致、迁移 SQL 只操作当前插件表。校验失败不会写入任何源码或数据。
生成插件注册文件(plugin generate)
go run . plugin generate --server-root .扫描 internal/plugins/ 下的插件目录,自动生成注册文件 internal/plugins/register_gen.go(带 Code generated 标记,禁止手工编辑)。安装器安装/升级/移除后会自动执行;手工增删插件目录后需手动运行一次。
安装与升级插件(plugin install / plugin upgrade)
# 安装(首次)
go run . plugin install /path/news-v1.0.0.zip \
--server-root . \
--admin-root ../admin_client \
--config config.yaml \
--apply-database
# 升级(需先停用插件并重启服务)
go run . plugin upgrade /path/news-v1.1.0.zip \
--server-root . \
--admin-root ../admin_client \
--config config.yaml \
--apply-database| 参数 | 说明 | 默认 |
|---|---|---|
--server-root | server_api 根目录 | . |
--admin-root | admin_client 根目录 | ../admin_client |
-c, --config | 数据库配置文件 | config.yaml |
--apply-database | 校验后执行插件迁移、菜单和安装记录 | false(仅装源码) |
输出说明:数据库=false 表示仅安装源码,尚未执行迁移、菜单和插件记录,需确认配置后用同一发行包重新执行并加 --apply-database;安装成功后插件默认停用状态,需在插件管理中启用并重启两端 API。
安装与升级的差异:升级要求插件已安装且停用、目标版本高于当前版本、已执行迁移的摘要不得改变。
移除插件(plugin remove)
go run . plugin remove news \
--server-root . \
--admin-root ../admin_client \
--config config.yaml可恢复移除:单事务删除角色授权、菜单、菜单映射和插件记录,保留业务表、迁移历史、安装日志与上传文件,移除前后端源码并重新生成注册文件。要求插件已停用且无其他已启用插件依赖它。命令中断后可重复执行继续清理。
彻底清理插件(plugin purge)
go run . plugin purge news \
--server-root . \
--admin-root ../admin_client \
--config config.yaml \
--confirm news| 参数 | 说明 |
|---|---|
--confirm | 必须填写与 plugin_id 完全一致的确认值 |
--server-root / --admin-root / -c | 同上 |
不可恢复:先执行可恢复移除,再删除 plg_{id}_* 业务表,全部删除成功后才清理迁移历史与安装日志。要求最新归档版本存在非空的数据库引用文档;检测到外部外键引用时拒绝执行。执行前必须备份。
完整的插件生命周期说明
安装前审查、升级规则、失败恢复与检查清单,参见插件安装与更新。