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

56 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 10.1 概述与架构
:::tip 概述
代码生成器内省数据库表结构,一键产出后端四件套、前端页面与 API 模块,并完成菜单创建、字典初始化与路由声明块追加。CLI(cmd/gen)与 Web 界面(tool/generator)双入口,共享同一生成引擎。
:::
## 生成流水线
```text
① 内省表结构(表/列/索引/注释 → 生成模型)
↓
② 模板渲染(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 章 模块开发实战](/zh/guide/overview.html) 理解手工四件套,再回来用生成器——你能看懂每一行产物,也知道改哪里。
## 下一步
→ [10.2 CLI 命令行使用](/zh/generator/cli.html)