agentsclimarketplace

Prisma orm

Skill iwritec0de/app-dev/skills/prisma-orm

Full-stack Next.js development plugin for Claude Code

Install
npx -y skills add iwritec0de/app-dev --skill prisma-orm

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Prisma ORM expertise for schema design, migrations, client usage, and deployment. Use when writing Prisma schemas, creating migrations, querying with Prisma Client, defining relations, or deploying database changes. Triggers on "prisma", "prisma schema", "prisma migrate", "prisma client", "prisma relation", "@@map", "@@index", "prisma generate", "prisma studio", "prisma deploy".

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

4.7 KB, as published. Nobody here has run it

Prisma ORM Skill

You are a Prisma ORM expert for TypeScript applications.

Critical Rules

  • Run prisma generate after schema changes — the client is code-generated, not runtime
  • Use migrate dev in development — creates migration files and applies them
  • Use migrate deploy in production — applies pending migrations without creating new ones
  • Never use db push in production — it doesn't create migration files and can lose data
  • Name relations explicitly — when a model has multiple relations to the same target
  • Add @@index for query performance — Prisma doesn't auto-create indexes on FKs
  • Use transactions for multi-step operationsprisma.$transaction() for consistency

Schema Design

model User {
  id        String   @id @default(uuid())
  email     String   @unique
  name      String?
  posts     Post[]
  profile   Profile?
  createdAt DateTime @default(now()) @map("created_at")
  updatedAt DateTime @updatedAt @map("updated_at")

  @@map("users")
  @@index([email])
}

model Post {
  id       String @id @default(uuid())
  title    String
  content  String?
  author   User   @relation(fields: [authorId], references: [id], onDelete: Cascade)
  authorId String @map("author_id")

  @@map("posts")
  @@index([authorId])
}

Key attributes: @id, @unique, @default(), @map(), @relation(), @@map(), @@index(), @@unique(). Read reference/schema-patterns.md for all types and patterns.

Relations

TypeSchema Pattern
One-to-OneFK with @unique on one side, optional ? field on other
One-to-ManyFK on "many" side, array [] on "one" side
Many-to-Many (implicit)Array [] on both sides, Prisma creates junction table
Many-to-Many (explicit)Junction model with two @relation fields
Self-relationModel references itself (e.g., parent/children)

Client Usage

// Create with relation
const user = await prisma.user.create({
  data: { email: '[email protected]', name: 'Alice', posts: { create: { title: 'Hello' } } },
  include: { posts: true },
});

// Query with filtering
const posts = await prisma.post.findMany({
  where: { author: { email: { contains: '@company.com' } } },
  orderBy: { createdAt: 'desc' },
  take: 20,
  skip: 0,
  select: { id: true, title: true, author: { select: { name: true } } },
});

// Cursor pagination (preferred over offset)
const next = await prisma.post.findMany({
  cursor: { id: lastId },
  skip: 1,
  take: 20,
  orderBy: { id: 'asc' },
});

Read reference/client-patterns.md for CRUD recipes, nested writes, transactions, and error handling.

Migrations

# Development: create and apply migration
npx prisma migrate dev --name add_user_table

# Production: apply pending migrations
npx prisma migrate deploy

# Reset database (development only)
npx prisma migrate reset

# Generate client after schema change
npx prisma generate

# Browse database
npx prisma studio

Read reference/migration-workflow.md for CI/CD integration, handling drift, and rollback strategies.

Advanced

  • Raw queriesprisma.$queryRaw for complex SQL not supported by client
  • Transactionsprisma.$transaction([...]) for sequential, or prisma.$transaction(async (tx) => {...}) for interactive
  • Middlewareprisma.$use() for logging, soft delete, audit trails
  • Connection pooling — use pgbouncer=true in connection string for serverless

Anti-Patterns

  • Don't use db push in prod — no migration history, can drop columns
  • Don't skip @@index — Prisma doesn't auto-index foreign keys
  • Don't fetch all fields — use select to reduce payload
  • Don't ignore N+1 — use include to eager-load relations
  • Don't edit migration files — create new migrations to fix issues
  • Don't use prisma migrate dev in CI — use prisma migrate deploy

Related

  • reference/schema-patterns.md — Model patterns, field types, attributes, enums, multi-file schemas
  • reference/client-patterns.md — CRUD recipes, filtering, transactions, raw SQL, error handling
  • reference/migration-workflow.md — Dev vs prod workflow, seeding, CI/CD, rollback

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.