Appearance
使用 Drizzle ORM 构建类型安全的 TypeScript 数据库层
通过配置 Drizzle ORM 专家技能,让 AI 帮你设计零运行时开销的 TypeScript 数据库 Schema,并快速实现从复杂关系查询到 Serverless 迁移的完整开发流。
为什么需要这个技能
在 TypeScript 生态中,传统的 ORM(如 Prisma)往往依赖庞大的二进制引擎,这在 Edge Runtime(如 Cloudflare Workers)或 Serverless 环境中会导致严重的冷启动问题。
Drizzle ORM 采用了完全不同的思路:它本质上是一个轻量级的 TypeScript 类型包装层,最终编译为纯 SQL。这意味着你既能享受像 Prisma 一样强大的类型推导和关系查询,又能获得接近原生 SQL 的性能和极小的包体积。掌握此技能可以让开发者在保证类型安全的同时,极大优化应用的响应速度。
适用场景
- 新项目初始化:快速搭建基于 TypeScript 的数据库访问层。
- Schema 设计:利用 TypeScript 定义数据库表结构、枚举及关联关系。
- 复杂数据查询:编写包含 Join、聚合、子查询的高级 SQL 逻辑,或使用 Relational API 实现嵌套查询。
- Serverless 部署:在 Neon, PlanetScale, Turso 等现代化数据库上实现高效连接。
- 迁移重构:将项目从 Prisma 或 TypeORM 迁移到 Drizzle 以提升性能。
核心工作流
1. Schema 定义与类型推导
使用 TypeScript-first 的方式定义表结构,并通过 InferSelectModel 自动导出类型,无需手动维护接口。
typescript
export const users = pgTable("users", {
id: uuid("id").defaultRandom().primaryKey(),
email: text("email").notNull().unique(),
name: text("name").notNull(),
});
export type User = InferSelectModel<typeof users>;2. 灵活的查询模式
Drizzle 提供两种查询方式:一种是标准的 SQL-like API(适用于复杂报表),另一种是 Relational API(适用于快速开发嵌套数据)。
typescript
// SQL-like API: 显式 Join
const results = await db.select().from(posts).innerJoin(users, eq(posts.authorId, users.id));
// Relational API: 类似 Prisma 的嵌套包含
const userWithPosts = await db.query.users.findFirst({
with: { posts: true },
});3. 自动化迁移 (Drizzle Kit)
通过 Drizzle Kit 实现从代码到数据库的同步,避免手动编写 SQL 迁移脚本。
bash
# 1. 根据 schema 变更生成迁移文件
npx drizzle-kit generate
# 2. 将迁移应用到生产数据库
npx drizzle-kit migrate
# 3. 启动 GUI 管理界面
npx drizzle-kit studio下载和安装
下载 drizzle-orm-expert 中文版 Skill ZIP
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐