📖 Guide

Prisma — Complete Reference

Complete Prisma ORM cheat sheet — schema, queries, migrations, and CLI.

85 commands across 10 categories

CLI Commands

CommandDescription
npx prisma init
Initialize Prisma in your project with a schema file and .env
npx prisma generate
Generate Prisma Client based on your schema
npx prisma db push
Push schema changes directly to the database without migrations
npx prisma db pull
Introspect the database and update your schema file
npx prisma migrate dev --name init
Create and apply a new migration in development
npx prisma migrate deploy
Apply pending migrations in production
npx prisma studio
Open Prisma Studio GUI to browse and edit data
npx prisma validate
Validate the Prisma schema file for errors
npx prisma format
Format the Prisma schema file
npx prisma db seed
Run the seed script defined in package.json

Schema

CommandDescription
datasource db { provider = "postgresql" url = env("DATABASE_URL") }
Define the database connection
generator client { provider = "prisma-client-js" }
Configure the Prisma Client generator
provider = "postgresql"
PostgreSQL provider (also: mysql, sqlite, sqlserver, mongodb, cockroachdb)
url = env("DATABASE_URL")
Read database URL from environment variable
shadowDatabaseUrl = env("SHADOW_DATABASE_URL")
Shadow database for migration diffing (required for some hosted DBs)
previewFeatures = ["fullTextSearch"]
Enable preview features in the generator block
binaryTargets = ["native", "linux-musl"]
Specify binary targets for deployment (e.g., Docker)
enum Role { USER ADMIN }
Define an enum type in the schema

Models & Fields

CommandDescription
id Int @id @default(autoincrement())
Auto-incrementing integer primary key
id String @id @default(cuid())
CUID string primary key
id String @id @default(uuid())
UUID string primary key
email String @unique
Unique constraint on a field
name String @default("Unknown")
Field with a default value
createdAt DateTime @default(now())
Timestamp defaulting to creation time
updatedAt DateTime @updatedAt
Automatically updated timestamp
bio String?
Optional (nullable) field
@@index([email, name])
Composite index on multiple fields
@@unique([firstName, lastName])
Composite unique constraint

Relations

CommandDescription
posts Post[]
One-to-many: User has many Posts
author User @relation(fields: [authorId], references: [id]) authorId Int
Many-to-one: Post belongs to User
profile Profile? user User @relation(fields: [userId], references: [id]) userId Int @unique
One-to-one relation (unique foreign key)
categories Category[] @relation("PostCategories") posts Post[] @relation("PostCategories")
Implicit many-to-many relation
@relation(onDelete: Cascade)
Cascade delete when parent is removed
@relation(onDelete: SetNull)
Set foreign key to null on parent delete
writtenPosts Post[] @relation("WrittenPosts") editedPosts Post[] @relation("EditedPosts")
Multiple relations between same models using named relations
@@map("comments")
Map model name to a different database table name

Queries (CRUD)

CommandDescription
prisma.user.findUnique({ where: { id: 1 } })
Find a single record by unique field
prisma.user.findFirst({ where: { name: "Alice" } })
Find the first matching record
prisma.user.findMany()
Find all records (supports filtering, sorting, pagination)
prisma.user.create({ data: { name: "Alice", email: "a@b.com" } })
Create a new record
prisma.user.update({ where: { id: 1 }, data: { name: "Bob" } })
Update a record by unique field
prisma.user.upsert({ where: { email: "a@b.com" }, update: { name: "Alice" }, create: { name: "Alice", email: "a@b.com" } })
Create or update a record
prisma.user.delete({ where: { id: 1 } })
Delete a record by unique field
prisma.user.createMany({ data: [{ name: "A" }, { name: "B" }] })
Create multiple records in one query
prisma.user.deleteMany({ where: { active: false } })
Delete multiple records matching a condition
prisma.user.updateMany({ where: { role: "USER" }, data: { verified: true } })
Update multiple records matching a condition

Filtering & Sorting

CommandDescription
where: { name: { contains: "ali", mode: "insensitive" } }
Case-insensitive substring search
where: { age: { gte: 18, lte: 65 } }
Range filter (gte, gt, lte, lt)
where: { email: { startsWith: "admin" } }
Starts with filter (also: endsWith)
where: { role: { in: ["ADMIN", "EDITOR"] } }
Filter by list of values (also: notIn)
where: { OR: [{ name: "Alice" }, { name: "Bob" }] }
OR condition across multiple filters
where: { NOT: { role: "ADMIN" } }
Negate a condition
orderBy: { createdAt: "desc" }
Sort results by a field
orderBy: [{ role: "asc" }, { name: "asc" }]
Sort by multiple fields
skip: 10, take: 5
Pagination with offset and limit
cursor: { id: 100 }, take: 10
Cursor-based pagination

Aggregations

CommandDescription
prisma.user.count()
Count all records
prisma.user.count({ where: { active: true } })
Count records matching a condition
prisma.post.aggregate({ _avg: { views: true }, _sum: { views: true } })
Aggregate: average and sum
prisma.post.aggregate({ _min: { createdAt: true }, _max: { createdAt: true } })
Aggregate: min and max values
prisma.post.groupBy({ by: ["authorId"], _count: { id: true } })
Group by a field with count
prisma.post.groupBy({ by: ["category"], _sum: { views: true }, orderBy: { _sum: { views: "desc" } } })
Group by with ordering
prisma.user.findMany({ select: { name: true, email: true } })
Select specific fields only
prisma.user.findMany({ include: { posts: true } })
Include related records in the result

Migrations

CommandDescription
npx prisma migrate dev --name add_users_table
Create a new migration and apply it
npx prisma migrate dev --create-only
Create migration SQL without applying it
npx prisma migrate deploy
Apply all pending migrations (production)
npx prisma migrate reset
Reset database: drop, recreate, apply all migrations, run seed
npx prisma migrate status
Check the status of migrations
npx prisma migrate resolve --applied 20240101000000_init
Mark a migration as applied (fix drift)
npx prisma db execute --file ./fix.sql
Execute raw SQL file against the database

Seeding

CommandDescription
"prisma": { "seed": "ts-node prisma/seed.ts" }
Configure seed command in package.json
npx prisma db seed
Run the seed script
await prisma.user.createMany({ data: users, skipDuplicates: true })
Seed with skipDuplicates to avoid errors on re-run
await prisma.user.upsert({ where: { email: "admin@test.com" }, update: {}, create: { ... } })
Idempotent seeding with upsert
const { PrismaClient } = require("@prisma/client") const prisma = new PrismaClient()
Initialize Prisma Client in seed file
await prisma.$disconnect()
Disconnect client at the end of the seed script

Common Patterns

CommandDescription
prisma.$transaction([query1, query2])
Run multiple queries in a transaction
prisma.$transaction(async (tx) => { ... })
Interactive transaction with custom logic
prisma.$queryRaw`SELECT * FROM users WHERE id = 1`
e.g. Use Prisma.sql for parameterized queries
Execute raw SQL query
prisma.user.findMany({ where: { posts: { some: { published: true } } } })
Filter by related records (relation filters)
prisma.post.create({ data: { title: "Hi", author: { connect: { id: 1 } } } })
Connect an existing relation on create
prisma.user.update({ where: { id: 1 }, data: { posts: { create: { title: "New" } } } })
Create a related record via nested write
const prisma = new PrismaClient({ log: ["query", "info", "warn", "error"] })
Enable query logging
prisma.$use(async (params, next) => { ... return next(params) })
Middleware for intercepting queries

More Guides

🌿
Git Commands
Complete Git command reference cheat sheet — from basics to advanced workflows, including branching, stashing, rebasing, and tagging. Searchable, with examples.
📝
Vim Commands
Complete Vim/Vi command reference cheat sheet — modes, motions, editing, search and replace, macros, registers, marks, and window management.
🐳
Docker Commands
Complete Docker & Docker Compose command reference cheat sheet — containers, images, volumes, networks, registry auth, buildx multi-platform builds, & cleanup.
🔤
Regex Reference
Complete regular expression reference cheat sheet — character classes, anchors, quantifiers, groups, lookaheads, flags, and JavaScript string methods.
🐧
Linux Commands
Complete Linux/Bash command reference cheat sheet — file management, text processing, networking, system admin, and shell scripting.
☸️
Kubernetes Commands
Complete Kubernetes & kubectl command reference cheat sheet — pods, deployments, services, secrets, namespaces, scaling, RBAC, networking, and Helm charts.
🐍
Python Reference
Complete Python reference — syntax, data structures, string methods, control flow, classes, error handling, file I/O, comprehensions, and built-ins.
🗃️
SQL Reference
Complete SQL reference cheat sheet — queries, joins, aggregation, subqueries, indexes, window functions, string and date functions, and database management.
🌐
Nginx Reference
Complete Nginx configuration reference — server blocks, locations, proxying, SSL, load balancing, caching, security headers, and rate limiting.
🔐
SSH Commands
Complete SSH reference — connections, key management, tunneling, config, SCP/SFTP, agent forwarding, security hardening, and troubleshooting.
👷
Jenkins Reference
Complete Jenkins reference — pipeline syntax, Jenkinsfile, plugins, CLI, agents, shared libraries, credentials, and CI/CD patterns.
📨
HTTP Headers Reference
Complete HTTP headers reference — request headers, response headers, caching, security, CORS, and content negotiation. Searchable, with examples.
🐘
PostgreSQL Reference
Comprehensive PostgreSQL reference — from connection basics to advanced features like JSONB, full-text search, window functions, and performance tuning.
⚡
Async Patterns Reference
Multi-language async/concurrency patterns — JavaScript, Python, Go, Rust, Java, plus retry, rate limiting, and circuit breaker patterns.
📡
Protobuf & gRPC Reference
Comprehensive reference for Protocol Buffers (proto3) and gRPC — message definitions, services, streaming, and common patterns.
📚
JS Array Methods
Complete JavaScript Array methods reference — creating, searching, transforming, sorting, iterating, and common patterns. Searchable, with examples.
🌊
Tailwind CSS Reference
Complete Tailwind CSS reference — layout, spacing, typography, colors, responsive design, states, and common patterns. Searchable, with examples.
◈
GraphQL Reference
Complete GraphQL reference — schema definition, types, queries, mutations, directives, fragments, and common patterns. Searchable, with examples.
💻
VS Code Shortcuts
Complete VS Code keyboard shortcuts cheat sheet — editing, navigation, search, multi-cursor, terminal, debug, and more. Searchable, with Cmd/Ctrl notation.
🔲
CSS Grid Reference
Complete CSS Grid reference — container properties, item placement, grid functions, and common layout patterns. Searchable, with examples.
📦
CSS Flexbox Reference
Complete CSS Flexbox reference — container properties, item properties, and common layout patterns. Searchable, with examples.
⚛️
React Hooks Reference
Complete React Hooks reference — useState, useEffect, useContext, custom hooks, and common patterns. Searchable, with examples.
🔷
TypeScript Reference
Complete TypeScript reference — types, interfaces, generics, utility types, and advanced patterns. Searchable, with examples.
☁️
AWS CLI Reference
Complete AWS CLI reference — EC2, S3, IAM, Lambda, ECS, RDS, CloudFormation, CloudWatch, SQS/SNS, Route 53, and common operations.
🐹
Go Reference
Complete Go (Golang) reference — syntax, types, structs, interfaces, goroutines, channels, error handling, testing, and the standard library.
💠
PowerShell Reference
Complete PowerShell reference — cmdlets, pipelines, scripting, file operations, remote management, and Active Directory.
💾
Redis Commands
Complete Redis command reference — strings, hashes, lists, sets, sorted sets, pub/sub, transactions, and server management.
🏗️
Terraform Commands
Complete Terraform reference — init, plan, apply, state management, modules, workspaces, providers, backend configuration, and HCL syntax.
⚙️
Ansible Commands
Complete Ansible reference — playbooks, modules, inventory, roles, vault, Galaxy, handlers, conditionals, loops, and ad-hoc commands.
🪶
Apache
Complete Apache HTTP Server cheat sheet — virtual hosts, modules, rewrite rules, and SSL, plus access control, logging, and performance.
🔤
ASCII Table
Complete ASCII character reference with decimal, hexadecimal, and character values, plus control codes and common escape sequences.
🔧
Awk
Powerful text processing language for pattern scanning, data extraction, arrays, control flow, and report generation with built-in variables.
💻
Bash
Complete Bash reference cheat sheet — variables, strings, arrays, conditionals, loops, functions, file tests, I/O redirection, process management, and more.
⚙️
C
Complete C programming cheat sheet covering syntax, pointers, memory management, structs, file I/O, preprocessor, and standard library.
🔐
Chmod
Linux file permission commands and patterns for chmod, covering numeric and symbolic modes, recursive changes, and SUID/SGID/sticky bits.
🔧
Chrome DevTools
Essential Chrome DevTools shortcuts, commands, and workflows for web developers — covering Network, Performance, and Application panels.
🔷
C++
Complete C++ cheat sheet covering STL containers, OOP, templates, smart pointers, iterators, lambda expressions, and modern C++ features.
⏰
Cron
Cron scheduling reference covering syntax, special strings, field values, crontab management, environment variables, and logging.
🎨
CSS
Complete CSS reference cheat sheet — selectors, box model, positioning, typography, animations, media queries, custom properties, and more.
🌐
Curl
Curl command-line reference for HTTP requests, headers, authentication, cookies, proxies, file transfers, SSL/TLS, debugging, and API patterns.
🎯
Dart
Dart language cheat sheet covering syntax, types, OOP, null safety, and async patterns, plus collections, error handling, and classes.
🐳
Docker Compose
Docker Compose reference covering CLI commands, service configuration, networking, volumes, health checks, profiles, and build options.
💧
Drizzle ORM
Complete Drizzle ORM reference for schema definition, column types, queries, filters, joins, relations, migrations, indexes, and patterns.
⚡
Emmet
Quick reference for Emmet abbreviations for lightning-fast HTML and CSS coding, covering nesting, multiplication, numbering, and grouping.
🔍
Find
Search for files and directories in a directory hierarchy with powerful filtering by name, size, time, permissions, type, and actions.
🔥
Firebase
Firebase reference covering Authentication, Firestore, Realtime Database, Cloud Functions, Hosting, Storage, and security rules.
🤖
GitHub Actions
Complete GitHub Actions cheat sheet — workflows, triggers, jobs, and CI/CD patterns, plus matrix strategies, caching, and artifacts.
🔎
Grep
Search text using patterns. Filter lines from files, command output, or streams with regular expressions, context options, and file filtering.
📄
HTML
Complete HTML reference — document structure, text content, links, forms, tables, media, semantic elements, meta tags, attributes, and accessibility.
📡
HTTP Status Codes
Complete reference of all standard HTTP response status codes across 1xx-5xx classes, with descriptions, examples, and common usage patterns.
☕
Java
Complete Java reference — data types, strings, collections, OOP, interfaces, exceptions, file I/O, streams, lambdas, and more.
🟨
JavaScript
Complete JavaScript reference — variables, types, operators, strings, arrays, objects, functions, async, DOM, ES6+, and more.
💲
jQuery
Quick reference for jQuery selectors, DOM manipulation, events, AJAX, and more, including animation effects, traversing, and plugins.
🔺
Laravel
Laravel PHP framework cheat sheet for routing, Eloquent, Blade, Artisan, and more, plus middleware, validation, and authentication.
📐
LaTeX
Quick reference for LaTeX document structure, math mode, formatting, and common packages, plus figures, tables, and citation styles.
📝
Markdown
Complete Markdown syntax reference for headings, formatting, links, tables, code blocks, task lists, footnotes, and extensions.
🍃
MongoDB
MongoDB reference covering CRUD operations, aggregation, indexes, and administration, plus replica sets, users, roles, and query operators.
🐬
MySQL
Complete MySQL cheat sheet covering queries, joins, indexes, transactions, data types, user permissions, and database administration.
▲
Next.js
Next.js App Router reference covering routing, data fetching, server components, API routes, middleware, and deployment configuration.
🟩
Node.js
Comprehensive Node.js runtime reference covering modules, file system, HTTP, streams, events, child processes, and npm scripts.
📦
npm
Complete npm cheat sheet — package management, scripts, publishing, and configuration, plus workspaces, security audits, and npx.
🔢
NumPy
Essential NumPy commands for array manipulation and numerical computing in Python, covering reshaping, broadcasting, and linear algebra.
🐼
Pandas
Pandas cheat sheet for data manipulation, analysis, and transformation in Python, covering DataFrames, grouping, merging, and date/time.
🐘
PHP
Complete PHP cheat sheet covering syntax, OOP, arrays, PDO, and modern PHP 8.x features, plus file I/O, superglobals, and error handling.
🔄
PM2
Production process manager for Node.js applications with cluster mode, monitoring, log management, startup scripts, and zero-downtime reloads.
🦀
Rust
Comprehensive Rust language cheat sheet covering ownership, traits, pattern matching, structs, enums, error handling, closures, and concurrency.
💅
Sass
Complete Sass/SCSS cheat sheet covering variables, mixins, functions, nesting, extends, maps, and the modern module system.
📺
Screen
GNU Screen terminal multiplexer for persistent sessions, window and split-region management, key bindings, copy mode, and remote work.
✂️
Sed
Stream editor for filtering and transforming text, line by line — substitution, address ranges, hold space, branching, and flags.
⚡
Supabase
Complete Supabase cheat sheet — auth, database, realtime, storage, and edge functions, plus row level security and migrations.
🖥️
Tmux
Terminal multiplexer cheat sheet for managing multiple sessions, windows, and panes from a single terminal, with copy mode and status bar configuration.
📦
TOML
Quick reference for TOML configuration file syntax, types, tables, and common patterns, including arrays of tables and inline tables.
▲
Vercel CLI
Complete Vercel CLI reference for deployment, project management, domains, environment variables, secrets, logs, edge functions, and configuration.
⚡
Vite
Next-generation frontend build tool with instant HMR, native ES modules, plugins, environment variables, library mode, and Rollup-based builds.
📦
Webpack
Module bundler for JavaScript applications — entry/output config, loaders, plugins, code splitting, module resolution, and optimization.
🎯
XPath
Quick reference for XPath expressions, axes, predicates, string functions, node tests, and operators for XML/HTML querying.
📋
YAML
YAML syntax reference covering scalars, collections, anchors, aliases, multi-line strings, nested structures, and common patterns.

📖 Free, searchable command reference. Bookmark this page for quick access.