Files
easygoadmin-wiki/EasyGoAdmin_Gin_AntdVue/zh/generator/overview.md
T
2026-10-25 17:24:27 +08:00

2.1 KiB
Raw Blame History

10.1 概述与架构

:::tip 概述 代码生成器内省数据库表结构,一键产出后端四件套、前端页面与 API 模块,并完成菜单创建、字典初始化与路由声明块追加。CLI(cmd/gen)与 Web 界面(tool/generator)双入口,共享同一生成引擎。 :::

生成流水线

① 内省表结构(表/列/索引/注释 → 生成模型)
        ↓
② 模板渲染(templates/*.tpl + 表模型 → 产物文本)
        ↓
③ 幂等落盘(generator.overwrite 控制覆盖/跳过)
        ↓
④ 副作用(幂等创建菜单行 + 字典初始化 + router.go 追加 Bind 声明块)

产物清单

类别 内容
后端四件套 internal/model/dto、repository、service、handler 下 {模块}.go
路由声明 router.go 的 Bind 声明块(自动追加)
前端 api 模块 + views 页面(index/edit/detail/columns/querySchemas;树形表走 ui2 模板)
菜单 页面菜单 + 权限节点(幂等创建,挂 generator.parentMenuId)
字典 按枚举列初始化字典与字典项

两个入口

入口 场景 说明
CLI(make gen) 本地开发、批处理 `go run ./cmd/gen -tables "表名
Web(tool/generator) 可视化挑选表、预览后生成 内置表列表查询、代码预览、批量生成

覆盖策略

generator.overwrite:

  • true:全部产物覆盖重新生成(模板变更后同步)
  • false:缺失补生成、存在跳过(保护手写内容,默认安全档)

生成结果分类呈现:generated(新建)/ skipped(跳过)/ overwritten(覆盖)/ failed(失败)。

安全开关

生成器具备写服务器源码能力——generator.enable=false 时路由整体不注册;生产模式(app.prod=true)拒绝未关闭的生成器。

学习建议

先读 第 3 章 模块开发实战 理解手工四件套,再回来用生成器——你能看懂每一行产物,也知道改哪里。

下一步

→ 10.2 CLI 命令行使用