3.4 KiB
3.4 KiB
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 generate
What 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 generate
Watch mode (development)
prisma generate --watch
Auto-regenerates when schema.prisma changes.
Specific generator
prisma generate --generator client
Multiple generators
prisma generate --generator client --generator zod_schemas
Typed SQL generation
prisma generate --sql
Schema 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 generate
Run prisma generate whenever you need refreshed client code after schema-changing commands.
CI/CD pipeline
prisma generate
Run 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 generators
Output 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'