Files
2026-10-20 21:53:26 +08:00

80 lines
2.6 KiB
Markdown
Raw Permalink 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.7 配置文件详解
:::tip 概述
生成器配置在 config.yaml 的 generator 块:parentMenuId(菜单挂载父级)与 overwrite(覆盖开关,唯一入口)。CLI 与 HTTP 共用同一份配置。
:::
## 配置项
```yaml
generator:
parentMenuId: 189 # 新模块菜单挂载的父级ID
overwrite: false # 是否覆盖已存在文件:true 生成即覆盖,
# false 或未配置时缺失补生成、存在跳过
```
## parentMenuId(菜单挂载位置)
```text
作用:createMenu 创建的主菜单挂到哪个父节点下
默认:189("代码生成"或指定的模块分组菜单 ID)
操作:
1. 菜单管理页面查目标父菜单的 ID
2. 修改 parentMenuId 为该 ID
3. 生成——新模块菜单出现在该父级下(sort=同级 MAX+5)
注意:
* 父级不存在时菜单挂载失败(看 Menu.Message)
* 路径仍为 /{domain}/{moduleCamel}(与挂载位置无关)
```
## overwrite(覆盖开关,唯一入口)
| 值 | 行为 | 适用 |
|----|------|------|
| false / 未配置 | 缺失补生成、存在跳过(Skipped) | **默认/推荐**——保护手工修改 |
| true | 生成即覆盖(Overwritten) | 全新表首次生成;或有意整体重生成 |
::: warning 覆盖风险
overwrite=true 会覆盖同名文件(**包括手工修改过的**)。批量覆盖前:
1. git 提交或备份手工改动
2. 或临时改回 false 按需补生成
3. 覆盖结果单独计入 Overwritten——生成后核对该列表
:::
## 其他相关配置
```yaml
# 数据库(生成器内省元数据的来源)
database:
default:
type: "mysql" # 非 MySQL 内省不到注释/枚举(建议 MySQL 上生成)
link: "..."
# 菜单/字典等副作用还受定稿数据影响(parentMenuId 对应的菜单需存在)
```
## 多环境配置
```text
CLI 与服务读同一份 manifest/config/config.yaml:
本地生成 → 改本地配置
服务器上生成 → 改服务器配置(或 GF_ 环境变量覆盖不改文件)
覆盖开关无环境变量特例时直接改配置文件(生成器为开发期工具,
生产环境通常不部署生成需求)
```
## 配置实践建议
```text
日常开发:overwrite: false(保护手工扩展)
新表首生成:保持 false 即可(文件不存在 = 全新写入)
重新生成同表:
1. 先 false 生成看 Skipped 清单(了解哪些文件已有)
2. 有意覆盖的模块备份后临时 true
3. 生成后 diff 核对合并手工改动
parentMenuId:团队约定统一挂载点(如"开发工具"分组)
```