BitzOrcas 使用 SqlSugar CodeFirst 进行 Schema 管理,而非传统的 EF Core 迁移。表从实体定义创建/更新,而非迁移文件。
Schema 初始化模式
# 创建/更新 Schema + 填充演示数据dotnet run --project src/Hosts/BitzOrcas.Api -- --init-schema --seed-demo
# 仅 Schema(不填充种子数据)dotnet run --project src/Hosts/BitzOrcas.Api -- --init-schema
# 仅种子数据(Schema 必须已存在)dotnet run --project src/Hosts/BitzOrcas.Api -- --seed-only
# 不初始化 Schema(默认 — 进入 Web 管道)dotnet run --project src/Hosts/BitzOrcas.Api—init-schema 做了什么
- 读取
PersistenceModelRegistry中所有已注册的实体 - 调用
SqlSugar CodeFirst创建/更新表 - 创建实体元数据中定义的索引
- 创建审计表(7 张分表)
- 创建 CAP Outbox 表
- 退出,不进入 Web 管道
—seed-demo 做了什么
ISeedRunner发现所有ISeedStep实现- 按依赖顺序执行步骤
- 每个步骤通过
CsvSeedReader读取 CSV - 通过 SqlSugar
Storageable进行 Upsert(可安全重复执行) - 生成
SeedRunReport,包含计数统计
生产注意事项
- 在已有数据上运行
--init-schema前备份数据库 - Schema 变更对新增字段是安全的,但可能删除已移除的列
- 种子数据是幂等的(Storageable upsert)