# 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:团队约定统一挂载点(如"开发工具"分组) ```