mcpbeat Sign in

Prisma CLI DB Pull Skill for Cursor

prisma db pull. Reference when using this Prisma feature.

959 tokens
context cost
the whole folder, loaded on every use
2
files
instructions only
0
copies elsewhere
how many repositories repackaged it
8
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/prisma/cursor-plugin --skill prisma-cli-db-pull

What comes with it

98 bytes besides the instruction
metadata.json

The instruction itself

16 sections, as written by the author

prisma db pull

Introspects an existing database and updates your Prisma schema to reflect its structure.

Command

prisma db pull [options]

What It Does

  • Connects to your database
  • Reads the database schema (tables, columns, relations, indexes)
  • Updates schema.prisma with corresponding Prisma models
  • For MongoDB, samples data to infer schema

Options

| Option | Description |

|--------|-------------|

| --force | Ignore current Prisma schema file |

| --print | Print the introspected Prisma schema to stdout |

| --schema | Custom path to your Prisma schema |

| --config | Custom path to your Prisma config file |

| --url | Override the datasource URL from the Prisma config file |

| --composite-type-depth | Specify the depth for introspecting composite types (default: -1 for infinite, 0 = off) |

| --schemas | Specify the database schemas to introspect |

| --local-d1 | Generate a Prisma schema from a local Cloudflare D1 database |

Examples

Basic introspection

prisma db pull

Preview without writing

prisma db pull --print

Outputs schema to terminal for review.

Force overwrite

prisma db pull --force

Replaces schema file, losing any manual customizations.

Prerequisites

Configure database connection in prisma.config.ts:

import 'dotenv/config'
import { defineConfig, env } from 'prisma/config'

export default defineConfig({
  schema: 'prisma/schema.prisma',
  datasource: {
    url: env('DATABASE_URL'),
  },
})

Workflow

Starting from existing database

  • Initialize Prisma:
   prisma init
  • Configure database URL
  • Pull schema:
   prisma db pull
  • Review and customize generated schema
  • Generate client:
   prisma generate

Syncing changes from database

When database changes are made outside Prisma:

prisma db pull
prisma generate

Generated Schema Example

Database tables become Prisma models:

-- Database tables
CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  email VARCHAR(255) UNIQUE NOT NULL,
  name VARCHAR(100)
);

CREATE TABLE posts (
  id SERIAL PRIMARY KEY,
  title VARCHAR(255) NOT NULL,
  author_id INTEGER REFERENCES users(id)
);

Becomes:

model users {
  id    Int     @id @default(autoincrement())
  email String  @unique @db.VarChar(255)
  name  String? @db.VarChar(100)
  posts posts[]
}

model posts {
  id        Int    @id @default(autoincrement())
  title     String @db.VarChar(255)
  author_id Int?
  users     users? @relation(fields: [author_id], references: [id])
}

Post-Introspection Cleanup

After db pull, consider:

  • Rename models to PascalCase:
   model User {  // Was: users
     @@map("users")
   }
  • Rename fields to camelCase:
   authorId Int? @map("author_id")
  • Add relation names for clarity:
   author User? @relation("PostAuthor", fields: [authorId], references: [id])
  • Add documentation:
   /// User account information
   model User {
     /// Primary email for authentication
     email String @unique
   }

MongoDB Introspection

For MongoDB, db pull samples documents to infer schema:

prisma db pull

May require manual refinement since MongoDB is schemaless.

Warning

db pull overwrites your schema file. Always:

  • Commit current schema before pulling
  • Use --print to preview first
  • Backup customizations you want to keep

How to use it

Copy the folder

Take prisma/prisma-cli-db-pull from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.