63 lines
2.2 KiB
Markdown
63 lines
2.2 KiB
Markdown
# 10.8 常见问题
|
||
|
||
:::tip 概述
|
||
生成器问题多集中在"推断不符预期"与"覆盖策略"两类。核心原则:**表注释是推断的输入质量,overwrite 是手写内容的安全阀**。
|
||
:::
|
||
|
||
## 生成内容类
|
||
|
||
**Q:枚举列没有生成字典和 SerializeMaps?**
|
||
|
||
列注释须含标准枚举形态:`1-在用 2-停用`(取值-含义,空格分隔)。改 COMMENT 后重新生成。
|
||
|
||
**Q:树形表生成了普通页面?**
|
||
|
||
确认 parent_id 列存在且注释正常(父级ID)。树形识别依赖 parent_id 列。
|
||
|
||
**Q:唯一性校验没生成?**
|
||
|
||
UniqueFields 推断自 `uk_` 前缀唯一索引——检查表上是否建了 uk_ 索引。
|
||
|
||
**Q:文件字段没有转正声明?**
|
||
|
||
文件列的识别依赖列语义(列名/注释)。必要时生成后手工在 FileFields 声明中补上。
|
||
|
||
## 落盘与覆盖类
|
||
|
||
**Q:生成后手写内容丢了?**
|
||
|
||
overwrite=true 会覆盖全部产物。有手写内容的模块必须 overwrite=false(或生成前提交 git 便于回滚)。
|
||
|
||
**Q:router.go 生成了重复声明?**
|
||
|
||
不会——声明块按模块标记幂等追加。若手工在块内加了方法,重新生成时非标准手工方法仍保留(声明块外的手写 handler 方法不受影响)。
|
||
|
||
**Q:菜单重复创建?**
|
||
|
||
菜单创建幂等(按名称/路径判定)。看到重复菜单时检查是否手工建过同名不同路径的菜单。
|
||
|
||
## 运行类
|
||
|
||
**Q:Web 界面 404?**
|
||
|
||
`generator.enable=false` 时生成器路由整体不注册。确认配置后重启。
|
||
|
||
**Q:生产环境能打开生成器?**
|
||
|
||
不正常。生产必须 enable=false;app.prod=true 时启动校验会直接拒绝这种组合。
|
||
|
||
**Q:CLI 报数据库连接失败?**
|
||
|
||
生成器需要连库内省。检查 database 配置;它不依赖 Redis(仅内省)。
|
||
|
||
## 效率建议
|
||
|
||
- 建表评审时就按生成器的推断输入(注释/索引/列名)把关——源头质量决定产物质量
|
||
- 团队统一 overwrite 策略,避免"我这边覆盖了你那边跳过"的协作事故
|
||
- 模板定制走 preview 快速迭代,确认后再落盘
|
||
|
||
## 相关
|
||
|
||
- [10.4 表结构解析与渲染引擎](/zh/generator/code-engine.html)
|
||
- [10.6 配置与覆盖策略](/zh/generator/config.html)
|