用途
Prisma ORM 技能用于为 Prisma ORM 的 schema 设计、迁移、关系、查询优化和数据库集成模式提供专家级辅助。当你需要设计数据库 schema、搭建迁移与数据库工作流、优化数据库查询、实现复杂关系,或配置 Prisma 与 Next.js 等框架集成时,可以调用该技能。
主要能力
- 设计带正确关系的 Prisma schema
- 生成和管理数据库迁移
- 优化查询性能
- 实现类型安全的数据库访问
- 配置多数据库支持
- 搭建种子(seeding)与测试策略
输入参数
该技能接受以下可选参数:
- database(字符串,可选):postgresql、mysql、sqlite、mongodb
- models(数组,可选):要创建的模型列表
- relations(数组,可选):模型关系
- features(数组,可选):migrations、seeding、edge
输出结构
技能会生成如下项目结构:
project/
├── prisma/
│ ├── schema.prisma # Database schema
│ ├── migrations/ # Migration files
│ │ └── 20240101_init/
│ │ └── migration.sql
│ └── seed.ts # Seed script
├── lib/
│ └── db/
│ ├── prisma.ts # Prisma client singleton
│ ├── queries/
│ │ ├── users.ts # User queries
│ │ └── posts.ts # Post queries
│ └── types.ts # Extended types
└── package.json
生成的代码模式
Prisma Schema
包含 generator client、datasource db,以及 User、Profile、Post、Category、Tag、Comment 等模型和 Role 枚举。示例中使用了 @id @default(cuid())、@unique、@relation、onDelete: Cascade、@@index、@@map 等特性。
Prisma Client 单例
在 lib/db/prisma.ts 中通过 globalForPrisma 创建并导出 PrismaClient 单例,并根据 NODE_ENV 配置日志级别。
查询函数
在 lib/db/queries/users.ts 与 lib/db/queries/posts.ts 中提供类型安全的查询函数,包括按 ID/邮箱查询用户、创建/更新/删除用户、分页查询用户、查询已发布文章、按 slug 查询文章、创建文章等。示例使用 Prisma.UserGetPayload、select、include、$transaction、_count、connect、connectOrCreate 等。
种子脚本
prisma/seed.ts 使用 upsert 创建分类与管理员用户,使用 createMany 创建示例文章,并在结束时调用 $disconnect。
使用方式
迁移工作流
# Create initial migration
npx prisma migrate dev --name init
# Apply migrations to production
npx prisma migrate deploy
# Reset database (development only)
npx prisma migrate reset
# Generate Prisma Client
npx prisma generate
# Seed database
npx prisma db seed
package.json 脚本
可配置 db:generate、db:push、db:migrate、db:migrate:deploy、db:seed、db:studio、db:reset 等脚本,并通过 prisma.seed 指定 tsx prisma/seed.ts。
依赖
{
"dependencies": {
"@prisma/client": "^6.0.0"
},
"devDependencies": {
"prisma": "^6.0.0"
}
}
查询优化模式
- 只选择需要的字段(使用
select而非获取全部字段) - 批量操作(使用
$transaction数组形式或交互式事务) - 使用游标分页(
cursor+skip: 1+take)
工作流
- 定义 schema——创建模型与关系
- 生成客户端——运行
prisma generate - 创建迁移——运行
prisma migrate dev - 实现查询——类型安全的数据库访问
- 种子数据库——创建初始数据
- 优化查询——select、batch、index
应用的最佳实践
- 使用 Prisma Client 进行类型安全查询
- 正确的关系建模
- 高效的分页模式
- 事务支持
- 在适当位置使用级联删除
- 为频繁查询的字段建立索引
适用场景
- 使用 Prisma 设计数据库 schema
- 搭建迁移与数据库工作流
- 优化数据库查询
- 实现复杂关系
- 配置 Prisma 与 Next.js 或其他框架集成
目标流程
- database-schema-design
- migration-management
- query-optimization
- data-seeding
- database-testing
参考
- Prisma Documentation: https://www.prisma.io/docs
- Prisma MCP Server: https://www.prisma.io/mcp
- Prisma Examples: https://github.com/prisma/prisma-examples
限制
资料未提供该技能的收费、价格、平台限制或效果保证等信息。