prisma generate
Generates assets based on the generator blocks in your Prisma schema, most commonly Prisma Client.
Command
prisma generate [options]Bun Runtime
If you're using Bun, run Prisma with bunx --bun so it doesn't fall back to Node.js:
bunx --bun prisma generateWhat It Does
- Reads your
schema.prismafile - Generates a customized Prisma Client based on your models
- Outputs to the directory specified in the generator block
Options
| Option | Description |
|---|---|
--schema |
Custom path to your Prisma schema |
--config |
Custom path to your Prisma config file |
--sql |
Generate typed sql module |
--watch |
Watch the Prisma schema and rerun after a change |
--generator |
Generator to use (may be provided multiple times) |
--no-hints |
Hides the hint messages but still outputs errors and warnings |
--require-models |
Do not allow generating a client without models |
Examples
Basic generation
prisma generateWatch mode (development)
prisma generate --watchAuto-regenerates when schema.prisma changes.
Specific generator
prisma generate --generator clientMultiple generators
prisma generate --generator client --generator zod_schemasTyped SQL generation
prisma generate --sqlSchema Configuration
generator client {
provider = "prisma-client"
output = "../generated"
}Current Generator Behavior
prisma-clientis the standard generatoroutputis required when usingprisma-clientprisma-clientsupports both ESM and CommonJS viamoduleFormatcompilerBuildsupportsfastandsmallquery compiler artifacts- Use TypeScript
satisfiesfor typed query fragments withprisma-client - Import Prisma Client from your generated output path, for example:
import { PrismaClient } from '../generated/prisma/client'Compiler Build Tuning
Use compilerBuild when you need to trade artifact size against the default build:
generator client {
provider = "prisma-client"
output = "../generated"
compilerBuild = "small"
}fastis the default build for most targetssmallis useful for size-constrained targets- Prisma defaults
vercel-edgetargets tosmall
Common Patterns
After schema changes
prisma migrate dev --name my_migration
prisma generateRun prisma generate whenever you need refreshed client code after schema-changing commands.
CI/CD pipeline
prisma generateRun before building your application.
Multiple generators
generator client {
provider = "prisma-client"
output = "../generated"
}
generator zod {
provider = "zod-prisma-types"
output = "../generated/zod"
}prisma generate # Runs all generatorsOutput Structure
After running prisma generate, your output directory contains:
generated/
├── browser.ts
├── client.ts
├── commonInputTypes.ts
├── models/
├── enums.ts
├── models.ts
└── ...Import the client:
import { PrismaClient, Prisma } from '../generated/prisma/client'Import browser-safe types:
import { Prisma } from '../generated/prisma/browser'
import { Role } from '../generated/prisma/enums'
import type { UserModel } from '../generated/prisma/models/User'