prisma-database
Guidelines for Prisma database design, migrations, and high-performance query patterns.
Install
mkdir -p .claude/skills/prisma-database && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/15223" && unzip -o skill.zip -d .claude/skills/prisma-database && rm skill.zipInstalls to .claude/skills/prisma-database
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Prisma schema conventions, migrations, seeding, and query patterns. Use when modifying database schema, creating migrations, or writing complex queries.Key capabilities
- →Design Prisma database schemas following conventions
- →Create new database migrations
- →Write seed data for databases
- →Build complex Prisma queries
- →Manage relations between database models
- →Index foreign keys for query performance
How it works
The skill provides conventions and critical rules for Prisma schema design, migration commands, and query patterns to standardize database interactions.
Inputs & outputs
When to use prisma-database
- →Modifying database schemas
- →Creating and running migrations
- →Writing efficient Prisma queries
About this skill
Prisma Database Skill
Patterns for Prisma schema design, migrations, and database queries.
When to Use This Skill
- Modifying the database schema
- Creating new migrations
- Writing seed data
- Building complex queries
- Managing relations
Reference Documentation
For detailed patterns and conventions, see:
Quick Reference
Schema Conventions
// backend/prisma/schema.prisma
model Task {
id String @id @default(cuid())
title String
description String?
isVital Boolean @default(false)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
// Relations
status TaskStatus @relation(fields: [statusId], references: [id])
statusId String
priority TaskPriority @relation(fields: [priorityId], references: [id])
priorityId String
category Category? @relation(fields: [categoryId], references: [id])
categoryId String?
owner User @relation("TaskOwner", fields: [ownerId], references: [id])
ownerId String
assignee User? @relation("TaskAssignee", fields: [assigneeId], references: [id])
assigneeId String?
@@index([statusId])
@@index([priorityId])
@@index([ownerId])
}
model TaskStatus {
id String @id @default(cuid())
name String @unique
color String
order Int
tasks Task[]
}
Critical Rules
- Use
cuid()for IDs – not UUID or auto-increment - Always add
createdAtandupdatedAt - Index foreign keys for query performance
- Use explicit relation names for multiple relations to same model
- Order matters – put scalar fields before relations
Migration Commands
# Create migration after schema changes
npm run db:migrate
# Reset database (dev only)
npm run db:reset
# Open Prisma Studio
npm run db:studio
# Generate Prisma Client
npx prisma generate
Query Patterns
Include Relations
// Always include needed relations
const task = await prisma.task.findUnique({
where: { id },
include: {
status: true,
priority: true,
category: true,
owner: true,
assignee: true
}
})
Filtered Queries
const tasks = await prisma.task.findMany({
where: {
status: { name: 'Todo' },
isVital: true,
ownerId: userId
},
include: {
status: true,
priority: true
},
orderBy: [
{ priority: { order: 'asc' } },
{ createdAt: 'desc' }
]
})
Create with Relations
const task = await prisma.task.create({
data: {
title: 'New Task',
status: { connect: { id: statusId } },
priority: { connect: { id: priorityId } },
owner: { connect: { id: userId } }
},
include: {
status: true,
priority: true
}
})
Update with Relations
const task = await prisma.task.update({
where: { id },
data: {
title: 'Updated Title',
status: { connect: { id: newStatusId } }
},
include: {
status: true,
priority: true
}
})
Seed Data
// backend/prisma/seed.ts
import { prisma } from '../src/lib/prisma.js'
async function main() {
// Create statuses
const statuses = await Promise.all([
prisma.taskStatus.upsert({
where: { name: 'Todo' },
update: {},
create: { name: 'Todo', color: '#6B7280', order: 1 }
}),
prisma.taskStatus.upsert({
where: { name: 'In Progress' },
update: {},
create: { name: 'In Progress', color: '#3B82F6', order: 2 }
}),
prisma.taskStatus.upsert({
where: { name: 'Done' },
update: {},
create: { name: 'Done', color: '#10B981', order: 3 }
})
])
console.log('Seeded statuses:', statuses.length)
}
main()
.catch(console.error)
.finally(() => prisma.$disconnect())
File Locations
- Schema:
backend/prisma/schema.prisma - Migrations:
backend/prisma/migrations/ - Seed:
backend/prisma/seed.ts - Prisma Client:
backend/src/lib/prisma.ts
When not to use it
- →When not using Prisma for database interactions
- →When not modifying database schema, creating migrations, or writing complex queries
Limitations
- →The skill is specific to Prisma ORM
- →The migration commands are `npm run db:migrate`, `npm run db:reset`, `npm run db:studio`, `npx prisma generate`
- →The schema conventions are specific to `cuid()` for IDs, `createdAt`/`updatedAt` fields, and explicit relation names
How it compares
It offers specific Prisma-centric rules like `cuid()` for IDs and explicit relation names, which differ from generic database design guidelines.
Compared to similar skills
prisma-database side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| prisma-database (this skill) | 0 | 6mo | Review | Intermediate |
| ck:databases | 0 | 4mo | Review | Intermediate |
| database-design | 6 | 6mo | Review | Intermediate |
| database-schema-designer | 6 | 6mo | No flags | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
ck:databases
lengo0951
Design schemas, write queries for MongoDB and PostgreSQL. Use for database design, SQL/NoSQL queries, aggregation pipelines, indexes, migrations, replication, performance optimization, psql CLI.
database-design
davila7
Database design principles and decision-making. Schema design, indexing strategy, ORM selection, serverless databases.
database-schema-designer
davila7
Design robust, scalable database schemas for SQL and NoSQL databases. Provides normalization guidelines, indexing strategies, migration patterns, constraint design, and performance optimization. Ensures data integrity, query performance, and maintainable data models.
databases
mrgoonie
Work with MongoDB (document database, BSON documents, aggregation pipelines, Atlas cloud) and PostgreSQL (relational database, SQL queries, psql CLI, pgAdmin). Use when designing database schemas, writing queries and aggregations, optimizing indexes for performance, performing database migrations, configuring replication and sharding, implementing backup and restore strategies, managing database users and permissions, analyzing query performance, or administering production databases.
community-feed
dadbodgeoff
Social feed with batch queries, cursor pagination, trending algorithms, and engagement tracking. Efficient database queries for infinite scroll feeds.
database-schema
alinaqi
Schema awareness - read before coding, type generation, prevent column errors