Claude Skill

prisma-workflow

Prisma ORM best practices, schema design, migrations, seeding, and query optimization for PostgreSQL. Use when working with database schemas, migrations, or Prisma queries.

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download sabahattink-antigravity-fullstack-hq-skills_prisma-workflow-1acbfa7.zip · 1 KB
Part of sabahattink/antigravity-fullstack-hq — 27 skills

Install

skills CLI npx skills add https://github.com/sabahattink/antigravity-fullstack-hq/tree/main/skills/prisma-workflow
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install sabahattink-antigravity-fullstack-hq@llmmart
Git git clone https://github.com/sabahattink/antigravity-fullstack-hq.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole sabahattink/antigravity-fullstack-hq collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

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

  1. Edit schema.prisma
  2. npx prisma migrate dev --name descriptive_name
  3. Review generated SQL in prisma/migrations/
  4. Test on development
  5. npx prisma migrate deploy for 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 select to fetch only needed fields
  • Use take for 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()
  }
}
Files (antigravity-fullstack-hq)
  • SKILL.md 2.2 KB
    ---
    name: prisma-workflow
    description: Prisma ORM best practices, schema design, migrations, seeding, and query optimization for PostgreSQL. Use when working with database schemas, migrations, or Prisma queries.
    ---
    
    # Prisma Workflow
    
    ## Schema Design
    
    ```prisma
    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
    
    1. Edit `schema.prisma`
    2. `npx prisma migrate dev --name descriptive_name`
    3. Review generated SQL in `prisma/migrations/`
    4. Test on development
    5. `npx prisma migrate deploy` for production
    
    ### Good Migration Names
    
    ```bash
    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
    
    ```typescript
    const user = await prisma.user.findUnique({
      where: { id },
      select: { id: true, email: true, name: true }
    })
    ```
    
    ### Include Relations
    
    ```typescript
    const user = await prisma.user.findUnique({
      where: { id },
      include: { posts: true }
    })
    ```
    
    ### Pagination
    
    ```typescript
    const users = await prisma.user.findMany({
      skip: (page - 1) * limit,
      take: limit,
      orderBy: { createdAt: 'desc' }
    })
    ```
    
    ### Transactions
    
    ```typescript
    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 `select` to fetch only needed fields
    - Use `take` for large tables
    - Batch operations with `createMany`
    - Use transactions for related operations
    
    ## Prisma Service (NestJS)
    
    ```typescript
    @Injectable()
    export class PrismaService extends PrismaClient implements OnModuleInit {
      async onModuleInit() {
        await this.$connect()
      }
    }
    ```
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related