with one click
with one click
prisma db execute. Reference when using this Prisma feature.
prisma db push. Reference when using this Prisma feature.
prisma db seed. Reference when using this Prisma feature.
prisma debug. Reference when using this Prisma feature.
prisma dev. Reference when using this Prisma feature.
prisma format. Reference when using this Prisma feature.
| name | prisma-cli-db-pull |
| description | prisma db pull. Reference when using this Prisma feature. |
| license | MIT |
| metadata | {"author":"prisma","version":"7.0.0"} |
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'),
},
})
Initialize Prisma:
prisma init
Configure database URL
Pull schema:
prisma db pull
Review and customize generated schema
Generate client:
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:
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
}
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 first