prisma db pull. Reference when using this Prisma feature.
npx skills add https://github.com/prisma/cursor-plugin --skill prisma-cli-db-pull
Introspects an existing database and updates your Prisma schema to reflect its structure.
prisma db pull [options]
schema.prisma with corresponding Prisma models| 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 |
prisma db pull
prisma db pull --print
Outputs schema to terminal for review.
prisma db pull --force
Replaces schema file, losing any manual customizations.
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'),
},
})
prisma init
prisma db pull
prisma generate
When database changes are made outside Prisma:
prisma db pull
prisma generate
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])
}
After db pull, consider:
model User { // Was: users
@@map("users")
}
authorId Int? @map("author_id")
author User? @relation("PostAuthor", fields: [authorId], references: [id])
/// User account information
model User {
/// Primary email for authentication
email String @unique
}
For MongoDB, db pull samples documents to infer schema:
prisma db pull
May require manual refinement since MongoDB is schemaless.
db pull overwrites your schema file. Always:
--print to preview firstTake prisma/prisma-cli-db-pull from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
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.