Generating and Configuring Prisma Client

1. Running Client Generation

CommandEffect
prisma generateRebuilds client from schema
postinstallAdd to package.json scripts for CI
--no-engineSkip engine (Accelerate-only)

2. Understanding Generated Types

ExportDescription
PrismaClientMain client class
PrismaNamespace for input types, enums, helpers
Model typesPer-model record types
Prisma.UserCreateInputInput shape for create
Prisma.UserGetPayload<T>Compute return type

3. Configuring Custom Output Path

AspectDetail
WhyBundle-friendly; explicit imports
Importimport { PrismaClient } from "../generated/prisma"
GitAdd output dir to .gitignore

4. Using Multiple Generators

generator client { provider = "prisma-client-js" output = "../generated/prisma" }
generator zod    { provider = "zod-prisma-types" }
generator erd    { provider = "prisma-erd-generator" output = "./erd.svg" }
GeneratorPurpose
zod-prisma-typesValidation schemas
prisma-erd-generatorER diagram
prisma-dbml-generatorDBML export

5. Enabling Preview Features

FeatureUse
tracingOpenTelemetry spans
viewsRead-only DB views
driverAdaptersEdge runtimes
queryCompilerJS-only query compilation

6. Regenerating After Schema Changes

Regeneration Workflow

  1. Edit schema.prisma
  2. Run prisma format
  3. Run prisma migrate dev --name change
  4. Client regenerates automatically
  5. Restart TypeScript server in editor
TriggerAction
migrate devAuto-generate
db pushAuto-generate
CI installRun prisma generate explicitly

7. Understanding Client API Structure

LevelMethods
Top-level$connect, $disconnect, $transaction, $queryRaw, $extends
ModelfindUnique, findMany, create, update, etc.
Aggregatecount, aggregate, groupBy

8. Using Auto-Generated Model Types

import type { User, Post, Prisma } from "@prisma/client";
type UserWithPosts = Prisma.UserGetPayload<{ include: { posts: true } }>;
TypeUse
UserBase record type
Prisma.UserGetPayloadType result of a specific query
Prisma.UserSelectAllowed select keys

9. Accessing Enums from Client

import { Role, Status } from "@prisma/client";
AspectDetail
TypeTypeScript const enum-like object
RuntimeFrozen value map

10. Configuring Engine Options

OptionEffect
PRISMA_QUERY_ENGINE_TYPEOverride engine type
PRISMA_CLIENT_ENGINE_TYPEBuild-time engine selection
PRISMA_QUERY_ENGINE_LIBRARYCustom binary path
NO_COLORDisable colored output