pull
Pull the state from the database to the Prisma schema using introspection
The prisma db pull command connects to your database and adds Prisma models to your Prisma schema that reflect the current database schema.
Usage
prisma db pull [options]The datasource URL configuration is read from the Prisma config file (e.g., prisma.config.ts).
This command will overwrite the current schema.prisma file with the new schema. Back up your current schema or commit to version control before running db pull if it contains important modifications.
Introspection with db pull on the MongoDB connector samples the data instead of reading a schema.
Prerequisites
Configure your database connection in prisma.config.ts:
generator client {
provider = "prisma-client"
output = "../generated/prisma"
}
datasource db {
provider = "sqlite"
}import { defineConfig, env } from "prisma/config";
export default defineConfig({
schema: "prisma/schema.prisma",
migrations: {
path: "prisma/migrations",
},
datasource: {
url: env("DATABASE_URL"),
},
});Flags
| Flag | Description |
|---|---|
-h, --help | Display help message |
--force | Ignore current Prisma schema file |
--print | Print the introspected Prisma schema to stdout |
Options
| Option | Description |
|---|---|
--config | Custom path to your Prisma config file |
--schema | Custom path to your Prisma schema |
--url | Override the datasource URL from the Prisma config file |
--composite-type-depth | Depth for introspecting composite types (e.g., MongoDB Embedded Documents). Default -1 for infinite depth, 0 to disable |
--schemas | Specify database schemas to introspect (overrides datasource block) |
--local-d1 | Generate a Prisma schema from a local Cloudflare D1 database |
Examples
Introspect the database
bunx --bun prisma db pullOutput:
Introspecting based on datasource defined in schema.prisma …
✔ Introspected 2 models and wrote them into schema.prisma in 38ms
Run prisma generate to generate Prisma Client.Specify a schema path
bunx --bun prisma db pull --schema=./alternative/schema.prismaPrint to stdout instead of writing to file
bunx --bun prisma db pull --printForce overwrite existing schema
Ignore any customizations in the current schema:
bunx --bun prisma db pull --forceSet composite type depth for MongoDB
bunx --bun prisma db pull --composite-type-depth=2