# App 数据种子使用说明(App:Seed) > 作用:在启动时自动创建默认租户与基础字典,便于本地/测试环境快速落地必备数据。由 `AppDataSeeder` 执行,支持幂等多次运行。 ## 配置入口 - 文件位置:`appsettings.{Environment}.json`(示例已写入 AdminApi 的 Development 配置)。 - 配置节:`App:Seed`。 示例(已写入 `src/Api/TakeoutSaaS.AdminApi/appsettings.Development.json`): ```json "App": { "Seed": { "Enabled": true, "DefaultTenant": { "TenantId": 1000000000001, "Code": "demo", "Name": "Demo租户", "ShortName": "Demo", "ContactName": "DemoAdmin", "ContactPhone": "13800000000" }, "DictionaryGroups": [ { "Code": "order_status", "Name": "订单状态", "Scope": "Business", "Items": [ { "Key": "pending", "Value": "待支付", "SortOrder": 10 }, { "Key": "paid", "Value": "已支付", "SortOrder": 20 }, { "Key": "finished", "Value": "已完成", "SortOrder": 30 } ] } ] } } ``` 字段说明: - `Enabled`: 是否启用种子。 - `DefaultTenant`: 默认租户(使用雪花 long ID,0 表示让雪花生成)。 - `DictionaryGroups`: 基础字典,`Scope` 可选 `System`/`Business`,`Items` 支持重复执行更新。 ## 运行方式 1. 确保 Admin API 已调用 `AddAppInfrastructure`(已在 Program.cs 中注册,会启动 `AppDataSeeder`)。 2. 修改 `appsettings.{Environment}.json` 的 `App:Seed` 后,启动 Admin API,即会自动执行种子逻辑(幂等)。 3. 查看日志:`AppSeed` 前缀会输出创建/更新结果。 ## 注意事项 - ID 必须为 long(雪花),不要再使用 Guid/自增。 - 系统租户使用 `TenantId = 0`;业务租户请填写实际雪花 ID。 - 字典分组编码需唯一;重复运行会按编码合并更新。 - 生产环境请按需开启 `Enabled`,避免误写入。