Skip to content
bitzorcas
EN

Guide

数据库初始化

Schema 管理 — SqlSugar CodeFirst 初始化、CSV 种子数据加载和 Schema 更新流程。

Last updated

BitzOrcas 使用 SqlSugar CodeFirst 进行 Schema 管理,而非传统的 EF Core 迁移。表从实体定义创建/更新,而非迁移文件。

Schema 初始化模式

Terminal window
# 创建/更新 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 做了什么

  1. 读取 PersistenceModelRegistry 中所有已注册的实体
  2. 调用 SqlSugar CodeFirst 创建/更新表
  3. 创建实体元数据中定义的索引
  4. 创建审计表(7 张分表)
  5. 创建 CAP Outbox 表
  6. 退出,不进入 Web 管道

—seed-demo 做了什么

  1. ISeedRunner 发现所有 ISeedStep 实现
  2. 按依赖顺序执行步骤
  3. 每个步骤通过 CsvSeedReader 读取 CSV
  4. 通过 SqlSugar Storageable 进行 Upsert(可安全重复执行)
  5. 生成 SeedRunReport,包含计数统计

生产注意事项

  • 在已有数据上运行 --init-schema 前备份数据库
  • Schema 变更对新增字段是安全的,但可能删除已移除的列
  • 种子数据是幂等的(Storageable upsert)

另见