English for Prisma ORM Developers

Learn the vocabulary and phrases for discussing Prisma schema, migrations, and the query client in English at work.

Prisma has reshaped how TypeScript developers interact with databases, and it has brought its own precise vocabulary with it. Words like “introspection,” “upsert,” and “seeding” have specific meanings in the Prisma ecosystem that differ from general database terminology. If you work on a team using Prisma and English is not your first language, knowing how to use these terms naturally will help you participate confidently in code reviews, sprint standups, and onboarding documentation. This guide covers the most important Prisma vocabulary and shows you how native English speakers use these terms in practice.

Key Vocabulary

Schema (Prisma schema) The single source of truth for a Prisma project, written in schema.prisma. It defines the database connection, the generator (e.g., Prisma Client), and all data models. Changes to the schema drive both the database structure and the generated client. Example: “We updated the Prisma schema to add a publishedAt field to the Post model, then ran a migration to apply the change.”

Data model A model block inside the Prisma schema that represents a database table (in SQL databases) or a collection (in MongoDB). Each field in the model maps to a column or document field. Example: “The User data model has a one-to-many relation with Post, meaning one user can author multiple posts.”

Migration A versioned SQL script generated by Prisma when the schema changes. Running prisma migrate dev creates a new migration file and applies it to the development database. Migrations form a history of all schema changes. Example: “The migration added the stripeCustomerId column to the User table — make sure to apply it on staging before you merge.”

Seed The process of populating a database with initial or test data using a script (typically prisma/seed.ts). Seeding is run with prisma db seed and is distinct from migrations. Example: “The seed script inserts a default admin user and five sample products so developers have realistic data from the start.”

Prisma Client The auto-generated, type-safe database client produced by prisma generate. It provides methods like findMany, create, update, and delete that map directly to the data models in the schema. Example: “We instantiate a single Prisma Client in lib/db.ts and import it wherever we need to query the database.”

Relation A connection between two data models defined using the @relation attribute and relation fields. Prisma supports one-to-one, one-to-many, and many-to-many relations. Example: “The Order model has a many-to-many relation with Product through an explicit join table called OrderItem.”

Introspection The process of generating a Prisma schema from an existing database by running prisma db pull. Useful when adopting Prisma on a project that already has a database with its own structure. Example: “We used introspection to generate the initial schema from the legacy MySQL database rather than writing it by hand.”

Upsert A single database operation that creates a record if it does not exist, or updates it if it does — combining INSERT and UPDATE into one atomic step. In Prisma, this is prisma.model.upsert(). Example: “We upsert the user’s subscription record on each webhook event so we handle both new subscribers and renewals with the same code path.”

Common Phrases

In code reviews:

  • “This relation is missing the @relation attribute with explicit field and reference names — Prisma can sometimes infer it, but being explicit avoids ambiguity in the generated client.”
  • “You are calling prisma.user.findMany() inside a loop — consider using a single findMany with an in filter to avoid the N+1 query problem.”
  • “This migration renames a column destructively; on production that will drop the old column and its data. Consider a two-step migration instead.”

In standups:

  • “I updated the schema to add the tags relation and ran prisma migrate dev locally — the migration is ready for review.”
  • “I am seeding the staging database today with realistic product data so the QA team can test the checkout flow properly.”
  • “I hit a type error in the Prisma Client after changing the schema; I forgot to run prisma generate after the model update — it is fixed now.”

In documentation:

  • “After pulling this repository, run prisma migrate dev to apply all pending migrations and prisma db seed to populate initial data.”
  • “All database access goes through the shared Prisma Client instance exported from lib/db.ts; do not instantiate a new client per request.”
  • “When adding a required field to an existing model, provide a default value in the migration or make the field optional to avoid breaking existing rows.”

Phrases to Avoid

Saying “Prisma model” to mean both the schema model and the generated client class. The model block in your schema is the data model or schema model. The generated client methods (e.g., prisma.user) are called the Prisma Client delegate or simply “the client.” Distinguish between them: “I updated the data model in the schema” vs. “I called the Prisma Client to fetch the record.”

Saying “run the migration” when you mean “generate a migration.” In Prisma, prisma migrate dev both generates a new migration file and applies it. If you just want to apply existing migration files (e.g., on a CI server), you run prisma migrate deploy. Say: “I generated and applied a migration in development” and “CI deploys migrations to staging.”

Saying “seed the schema” instead of “seed the database.” You seed a database with data, not a schema. The schema defines structure; the database holds data. Say: “I will seed the database with test records” rather than “I will seed the schema.”

Quick Reference

TermHow to use it
schema”Update the Prisma schema and regenerate the client after every model change.”
migration”Run prisma migrate dev to generate and apply the migration locally.”
seed”Run prisma db seed to populate the database with initial data.”
upsert”Use upsert when a record may or may not already exist.”
introspection”Use prisma db pull to introspect the existing database and generate the schema.”