prisma-workflow
SKILL.md
Prisma Workflow
Schema Design
model User {
id String @id @default(cuid())
email String @unique
name String?
role Role @default(USER)
posts Post[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@index([email])
}
model Post {
id String @id @default(cuid())
title String
content String?
published Boolean @default(false)
author User @relation(fields: [authorId], references: [id], onDelete: Cascade)
authorId String
@@index([authorId])
}
enum Role {
USER
ADMIN
}
Migration Workflow
- Edit
schema.prisma npx prisma migrate dev --name descriptive_name- Review generated SQL in
prisma/migrations/ - Test on development
npx prisma migrate deployfor production
Good Migration Names
npx prisma migrate dev --name add_user_role
npx prisma migrate dev --name create_posts_table
npx prisma migrate dev --name add_index_on_email
Query Patterns
Select Specific Fields
const user = await prisma.user.findUnique({
where: { id },
select: { id: true, email: true, name: true }
})
Include Relations
const user = await prisma.user.findUnique({
where: { id },
include: { posts: true }
})
Pagination
const users = await prisma.user.findMany({
skip: (page - 1) * limit,
take: limit,
orderBy: { createdAt: 'desc' }
})
Transactions
await prisma.$transaction([
prisma.user.update({ where: { id }, data: { balance: { decrement: 100 } } }),
prisma.order.create({ data: { userId: id, amount: 100 } })
])
Performance Tips
- Always index foreign keys
- Use
selectto fetch only needed fields - Use
takefor large tables - Batch operations with
createMany - Use transactions for related operations
Prisma Service (NestJS)
@Injectable()
export class PrismaService extends PrismaClient implements OnModuleInit {
async onModuleInit() {
await this.$connect()
}
}
Weekly Installs
2
Repository
sabahattinkalka…stack-hqGitHub Stars
13
First Seen
Feb 14, 2026
Security Audits
Installed on
antigravity2
gemini-cli2
mcpjam1
claude-code1
windsurf1
zencoder1