创建或修改数据库 Schema。当需要创建新表、修改表结构、定义字段、设置索引约束、或涉及 Drizzle ORM / drizzle-zod 操作时使用
src/db/schema/
├── _shard/ # 共享定义
│ ├── base-columns.ts # 基础列(id/createdAt/updatedAt/createdBy/updatedBy)
│ ├── enums.ts # 数据库枚举定义
│ └── types/ # 共享类型
├── _infra/ # 基础设施表(非业务表)
│ └── queue/ # 队列任务
├── admin/ # 管理端表
│ ├── system/ # 系统管理
│ └── auth/ # 认证相关
├── client/ # 客户端表
└── index.ts # 统一导出
注意:
_infra目录使用下划线前缀,存放基础设施相关的表(如审计日志、队列任务记录等),与业务表分开管理。
import db from "@/db"; // 数据库实例(default export)
import { users } from "@/db/schema"; // Schema 定义
{tier}_{feature}s(如 system_users){表名}_{字段名}_idxid// 正确:批量插入
db.insert(table).values([...items])
// 错误:循环单条插入
for (const item of items) {
db.insert(table).values(item) // 不要这样做
}
参考 db-schema.md
包含:
包含:
包含:
参考 migration.md
包含:
src/db/schema/{tier}/{category}/ 下创建文件src/db/schema/index.ts 中导出pnpm push(开发环境)pnpm push(开发环境)pnpm generate # 生成迁移文件
pnpm migrate # 执行迁移
meta/ 文件夹;未执行的迁移文件可以修改或删除后重新生成