1.9 KiB
1.9 KiB
App 数据种子使用说明(App:Seed)
作用:在启动时自动创建默认租户与基础字典,便于本地/测试环境快速落地必备数据。由
AppDataSeeder执行,支持幂等多次运行。
配置入口
- 文件位置:
appsettings.{Environment}.json(示例已写入 AdminApi 的 Development 配置)。 - 配置节:
App:Seed。
示例(已写入 src/Api/TakeoutSaaS.AdminApi/appsettings.Development.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支持重复执行更新。
运行方式
- 确保 Admin API 已调用
AddAppInfrastructure(已在 Program.cs 中注册,会启动AppDataSeeder)。 - 修改
appsettings.{Environment}.json的App:Seed后,启动 Admin API,即会自动执行种子逻辑(幂等)。 - 查看日志:
AppSeed前缀会输出创建/更新结果。
注意事项
- ID 必须为 long(雪花),不要再使用 Guid/自增。
- 系统租户使用
TenantId = 0;业务租户请填写实际雪花 ID。 - 字典分组编码需唯一;重复运行会按编码合并更新。
- 生产环境请按需开启
Enabled,避免误写入。