# Prisma: what changed from 6 to 7 - Product: Prisma (https://whatsnew.fyi/product/prisma) - Vendor: Prisma - Range: changelog entries numbered after 6.19.3 up to and including 7.10.0, stable releases only - Entries below: 10 releases (newest first) - Resolved: 6 is 6.19.3 and 7 is 7.10.0, the newest stable release of each major we track - Carrying security changes: 2 · CVEs mentioned: 0 · Mentioning breaking changes: 0 · Removing or deprecating something: 1 - Page: https://whatsnew.fyi/product/prisma/compare/6...7 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. ## What changed (96 changes, grouped by kind) ### Added #### 7.10.0 (2026-08-25) - Introduce @prisma/prisma7 compatibility package to run Prisma 7 alongside Prisma 8 in the same project - Support prisma7.config.* configuration files for Prisma 7 that coexist with Prisma 8's prisma.config.* files - Add prisma7 CLI command for version-specific Prisma 7 operations - Result-extension compute callbacks now receive the current model name as a typed second argument #### 7.9.0 (2026-07-21) - Shell tab completions for bash, zsh, fish, and PowerShell covering Prisma CLI commands, subcommands, options, flags, and option values - Prisma agent skills catalog installed automatically with prisma init for AI agents like Claude Code, Cursor, Codex, and Windsurf #### 7.8.0 (2026-04-22) - Add a queryPlanCacheMaxSize option to the PrismaClient constructor for fine-grained control over the query plan cache #### 7.7.0 (2026-04-07) - Add `prisma bootstrap` command that sequences the full Prisma Postgres setup into a single interactive flow, including init or scaffold, link, install dependencies, migrate, generate, and seed steps #### 7.6.0 (2026-03-27) - Added a `prisma postgres link` command that connects a local project to a Prisma Postgres database - Added a `statementNameGenerator` option to @prisma/adapter-pg that accepts a custom prepared statement name generator for pg statement caching - Added support for usage of connection strings directly in the @prisma/adapter-pg constructor - Added a `useTextProtocol` option in @prisma/adapter-mariadb constructor to toggle between text and binary protocols - Added dark mode to Prisma Studio - Added ability to copy one or more rows as CSV or Markdown in Prisma Studio - Added multi-cell editing capability to Prisma Studio for editing multiple cells while inspecting your database - Added back relations in Prisma Studio that link to related records in other tables - Added generative SQL with AI in Prisma Studio to generate SQL statements from natural language #### 7.5.0 (2026-03-11) - Support for nested transaction rollbacks via savepoints for SQL databases - Multi-cell selection and full table search in Prisma Studio - Cmd+k command palette in Prisma Studio for keyboard-based navigation - Ability to run raw SQL queries against data in Prisma Studio #### 7.4.1 (2026-02-19) - Support where argument on field-level @unique for partial indexes #### 7.4.0 (2026-02-11) - Introduce caching layer in Prisma Client that normalizes query shapes and caches compiled query plans in an LRU cache to reduce event loop contention under high concurrency - Add Partial Indexes (Filtered Indexes) support for PostgreSQL, SQLite, SQL Server, and CockroachDB behind the partialIndexes preview feature, allowing indexes that only include rows matching specific conditions - Support type-safe object syntax for partial index conditions using simple condition literals and filters - Support raw SQL syntax for partial indexes using the raw() function with database-specific predicates ### Changed #### 7.9.0 (2026-07-21) - Broadened AI agent detection to cover Codex CLI, Qwen Code, GitHub Copilot CLI, OpenCode, Cline, Goose, Amp, Crush, Augment Code, Antigravity, Replit Agent, Devin, and generic AI_AGENT and AGENT environment variables - Extended the AI safety checkpoint guard to db push --accept-data-loss to prevent destructive commands when an AI agent is detected #### 7.8.0 (2026-04-22) - Make @prisma/adapter-d1 savepoint operations (createSavepoint, rollbackToSavepoint, releaseSavepoint) silently no-op with debug logging instead of executing SQL statements #### 7.6.0 (2026-03-27) - Modified @prisma/adapter-mariadb to disable mariadb statement caching by default to address a reported leak #### 7.5.0 (2026-03-11) - Made adapter-mariadb use the binary MySQL protocol to fix lossy number conversions - Made @types/pg a direct dependency of adapter-pg for better TypeScript experience - More intuitive filtering in Prisma Studio with option for raw SQL filters #### 7.4.1 (2026-02-19) - Add object expression and object member support to schema reformatter ### Fixed #### 7.10.0 (2026-08-25) - Fix P2002 errors from nested writes so meta.modelName identifies the model where the unique constraint violation occurred - Fix automatically batched findUniqueOrThrow() calls so every missing record rejects with P2025 - Execute parameter-chunked statements atomically in a transaction and roll back if a later chunk fails - Improve interactive transaction cleanup during $disconnect() including transactions whose driver-level startup is still in progress - Prevent transaction cleanup failures after a timeout or backend termination from becoming unhandled promise rejections - Fix fluent relation queries when relation fields are literally named select or include - Fix handling of Date and Uint8Array values created in other JavaScript realms such as iframes jsdom and Node.js vm contexts - Invalid Date values passed to $queryRaw or $executeRaw now throw PrismaClientValidationError instead of a generic error - Fix moduleFormat inference for the prisma-client generator in TypeScript projects using module node16 or nodenext - Deserialized Bytes values now own standalone ArrayBuffers rather than exposing unrelated contents from Node.js's shared Buffer pool - Fix incorrect logging context in the remote executor including Accelerate-backed query execution #### 7.9.0 (2026-07-21) - Restored the OmitOpts generic default to fix a severe TypeScript performance regression in Prisma 7, bringing type-checking on large schemas from minutes back to seconds - The XOR type helper now rejects primitive values such as data: 5 at compile time instead of only at runtime - $queryRaw and $executeRaw now fail fast with a clear validation error when passed an invalid Date instead of silently serializing it as null - Generated client is no longer corrupted by documentation comments containing */ sequences; comment terminators are now escaped in both TypeScript and JavaScript generators - Improved runtime and TypeScript error messages when a driver adapter is missing from the PrismaClient constructor to include a copy-pasteable example and link to driver adapters documentation #### 7.8.0 (2026-04-22) - Fix an equality filter panic and incorrect ::jsonb cast when filtering on PostgreSQL JSON list columns - Fix case-insensitive JSON field filtering (mode: insensitive) to work correctly with jsonField equality queries - Fix incorrect parameterization of enum values that have a custom database name set via @map - Fix a database parameter limit check (P2029) which could incorrectly reject or miss over-limit queries - Fix a regression that caused missing SQL Server VARCHAR casts for parameterized values - Fix a misleading error message in prisma migrate diff that referenced the --shadow-database-url CLI flag - Fix prisma migrate dev failing with CREATE INDEX CONCURRENTLY cannot run inside a transaction block when a migration contained concurrent index creation statements on PostgreSQL - Fix PostgreSQL introspection silently dropping sequence defaults when the database returns the schema-qualified form #### 7.6.0 (2026-03-27) - Disabled caching of `createMany` queries to avoid cache bloat and potential Node.js crashes in bulk operations - Made `NowGenerator` lazy to avoid synchronous `new Date()` calls, fixing Next.js dynamic usage errors in cached components - Fixed missing export of `GetGroupByPayload` type in the prisma-client generator - Added streaming parsing with automatic fallback to handle Prisma schemas that produce extremely large intermediate strings exceeding V8's string limits - Relaxed the @types/pg version constraint to ^8.16.0 in @prisma/adapter-pg for compatibility with newer PostgreSQL type definitions - Corrected error handling for `ColumnNotFound` errors in @prisma/adapter-pg to correctly extract column names from both quoted and unquoted PostgreSQL error messages #### 7.5.0 (2026-03-11) - Prisma.DbNull serializing as empty object in bundled environments like Next.js - DateTime fields returning Invalid Date with unixepoch-ms timestamps - Cursor-based pagination issue with @db.Date columns - Manual partial indexes are now preserved when partialIndexes preview feature is disabled - Partial index predicate comparison to handle quoted vs unquoted identifiers correctly - Excluded partial unique indexes from DMMF uniqueFields and uniqueIndexes to prevent incorrect findUnique input type generation #### 7.4.2 (2026-02-27) - Fix a case-insensitive IN and NOT IN filter regression - Fix a query plan mutation issue that resulted in broken cursor queries - Fix an array parameter wrapping issue in push operations - Fix Uint8Array serialization in nested JSON fields - Fix an issue with MySQL joins that relied on non-strict equality - Update text column detection in @prisma/adapter-mariadb to check for a binary collation - Correct relationJoins compatibility check in @prisma/adapter-mariadb for MariaDB 8.x versions - Fix partial index predicate comparison on PostgreSQL and MSSQL #### 7.4.1 (2026-02-19) - Fix cursor-based pagination regression with parameterised values - Preserve Prisma.skip through query extension argument cloning - Enable batching of multiple queries inside interactive transactions - Add missing JSON value deserialization for JSONB parameter fields - Apply result extensions correctly for nested and fluent relations - Allow missing config datasource URL and validate only when needed - Handle null values in type parsers for nullable columns in @prisma/adapter-ppg #### 7.4.0 (2026-02-11) - Fix PostgreSQL migration scripts to support CREATE INDEX CONCURRENTLY in migrations - Fix BigInt precision loss in JSON aggregation for MySQL and CockroachDB by casting BigInt values to text - Fix connection failures with non-ASCII database names by properly URL-decoding database names in connection strings - Fix silent transaction commit errors in PlanetScale adapter by ensuring COMMIT failures are properly propagated - Fix race condition errors (EREQINPROG) in SQL Server adapter by serializing commit and rollback operations using mutex synchronization - Fix MSSQL connection string parsing to properly handle curly brace escaping for passwords containing special characters ### Removed #### 7.9.0 (2026-07-21) - Removed the migrate-reset tool from the prisma mcp server ### Security #### 7.10.0 (2026-08-25) - Bind Prisma Studio's local HTTP server explicitly to 127.0.0.1 instead of all network interfaces - Reject browser requests to Prisma Studio from origins other than the active localhost or 127.0.0.1 Studio URL - Remove wildcard CORS headers from Prisma Studio and apply the same protections across Node.js Bun and Deno #### 7.9.1 (2026-07-27) - Resolved a security advisory in a transitive dependency of Prisma CLI ## Release notes ### 7.10.0 - Date: 2026-08-25 - Version: 7.10.0 - Original notes: https://github.com/prisma/orm/releases/tag/7.10.0 - Permalink: https://whatsnew.fyi/product/prisma/releases/7.10.0 - **added** — Introduce @prisma/prisma7 compatibility package to run Prisma 7 alongside Prisma 8 in the same project - **added** — Support prisma7.config.* configuration files for Prisma 7 that coexist with Prisma 8's prisma.config.* files - **added** — Add prisma7 CLI command for version-specific Prisma 7 operations - **added** — Result-extension compute callbacks now receive the current model name as a typed second argument - **fixed** — Fix P2002 errors from nested writes so meta.modelName identifies the model where the unique constraint violation occurred - **fixed** — Fix automatically batched findUniqueOrThrow() calls so every missing record rejects with P2025 - **fixed** — Execute parameter-chunked statements atomically in a transaction and roll back if a later chunk fails - **fixed** — Improve interactive transaction cleanup during $disconnect() including transactions whose driver-level startup is still in progress - **fixed** — Prevent transaction cleanup failures after a timeout or backend termination from becoming unhandled promise rejections - **fixed** — Fix fluent relation queries when relation fields are literally named select or include - **fixed** — Fix handling of Date and Uint8Array values created in other JavaScript realms such as iframes jsdom and Node.js vm contexts - **fixed** — Invalid Date values passed to $queryRaw or $executeRaw now throw PrismaClientValidationError instead of a generic error - **fixed** — Fix moduleFormat inference for the prisma-client generator in TypeScript projects using module node16 or nodenext - **fixed** — Deserialized Bytes values now own standalone ArrayBuffers rather than exposing unrelated contents from Node.js's shared Buffer pool - **fixed** — Fix incorrect logging context in the remote executor including Accelerate-backed query execution - **security** — Bind Prisma Studio's local HTTP server explicitly to 127.0.0.1 instead of all network interfaces - **security** — Reject browser requests to Prisma Studio from origins other than the active localhost or 127.0.0.1 Studio URL - **security** — Remove wildcard CORS headers from Prisma Studio and apply the same protections across Node.js Bun and Deno #### Prisma ORM 7.10.0 Prisma ORM 7.10.0 introduces a compatibility package for running Prisma 7 alongside newer Prisma versions, secures Prisma Studio's local server, and includes fixes across Prisma Client and the PostgreSQL, MariaDB, Neon, SQLite, and Prisma Postgres Serverless adapters. ##### Highlights ###### Run Prisma 7 alongside Prisma 8 This release introduces `@prisma/prisma7`, a compatibility package that lets you retain a matching Prisma 7 CLI and configuration while installing Prisma 8 in the same project. Once 7.10.0 is released, a side-by-side installation can use: ```sh npm install --save-dev prisma@8 @prisma/prisma7@7.10.0 npm install @prisma/client@7.10.0 ``` Use `prisma` for the directly installed Prisma 8 CLI and `prisma7` for Prisma 7: ```sh npx prisma --version npx prisma7 --version npx prisma7 generate npx prisma7 migrate dev npx prisma7 db push ``` Prisma 7 now prefers version-specific configuration files, allowing its configuration to coexist with Prisma 8's `prisma.config.*` files: ```ts // prisma7.config.ts import { defineConfig } from '@prisma/prisma7/config' export default defineConfig({ schema: 'prisma/schema.prisma', migrations: { path: 'prisma/migrations', }, }) ``` Without an explicit `--config` option, Prisma 7 searches for: 1. Root-level `prisma7.config.*` files. 2. `.config/prisma7.*` files. 3. Existing `prisma.config.*` files as a backwards-compatible fallback. The supported extensions are `.js`, `.ts`, `.mjs`, `.cjs`, `.mts`, and `.cts`. An explicit config path always takes precedence: ```sh npx prisma7 generate --config ./custom/prisma7.config.ts ``` New projects initialized by the Prisma 7 CLI use `prisma7.config.ts`. Existing projects containing only `prisma.config.*` continue to work without migration or additional warnings. If a `prisma7.config.*` file exists but cannot be loaded, Prisma reports the error rather than silently falling back to another configuration. The `prisma7` identity is carried through CLI help, version output, shell completion, initialization, migration, database, and generation guidance. Stable Prisma concepts such as `schema.prisma`, Prisma Migrate, `@prisma/client`, and `PRISMA_*` environment variables remain unchanged. Together, the separate executable and configuration namespace make it possible to operate Prisma 7 and Prisma 8 side by side without command or config-file collisions. [#29949](https://github.com/prisma/prisma/pull/29949), [#29969](https://github.com/prisma/prisma/pull/29969), [#29994](https://github.com/prisma/prisma/pull/29994), [#30000](https://github.com/prisma/prisma/pull/30000), [#30002](https://github.com/prisma/prisma/pull/30002), [#30020](https://github.com/prisma/prisma/pull/30020) ###### Prisma Studio security hardening Prisma Studio's local HTTP server now: - Binds explicitly to `127.0.0.1` instead of all network interfaces. - Rejects browser requests from origins other than the active `localhost` or `127.0.0.1` Studio URL. - No longer returns wildcard CORS headers. - Applies the same protections across Node.js, Bun, and Deno. This prevents network clients or malicious websites from accessing Studio's database endpoints while Studio is running. [#29890](https://github.com/prisma/prisma/pull/29890) ##### Prisma Client - Fixed `P2002` errors from nested writes so `meta.modelName` identifies the model where the unique constraint violation occurred, including models using `@@map` and `@@schema`. [#29628](https://github.com/prisma/prisma/pull/29628) - Fixed automatically batched `findUniqueOrThrow()` calls so every missing record rejects with `P2025`; later misses no longer resolve to `undefined`. [#29654](https://github.com/prisma/prisma/pull/29654) - Parameter-chunked statements are now executed atomically in a transaction and rolled back if a later chunk fails. [#29771](https://github.com/prisma/prisma/pull/29771) - Impr _[Truncated at 4000 characters — full notes: https://github.com/prisma/orm/releases/tag/7.10.0]_ ### 7.9.1 - Date: 2026-07-27 - Version: 7.9.1 - Original notes: https://github.com/prisma/prisma/releases/tag/7.9.1 - Permalink: https://whatsnew.fyi/product/prisma/releases/7.9.1 - **security** — Resolved a security advisory in a transitive dependency of Prisma CLI Today, we're issuing a patch release to resolve a security advisory in a transitive dependency of Prisma CLI (via `@prisma/dev`). This fixes https://github.com/prisma/prisma/issues/29780. It does not actually affect `@prisma/dev` or Prisma CLI so no urgent action is required, but it is recommended to upgrade nevertheless to avoid false positives from security scanners. ### 7.9.0 - Date: 2026-07-21 - Version: 7.9.0 - Original notes: https://github.com/prisma/prisma/releases/tag/7.9.0 - Permalink: https://whatsnew.fyi/product/prisma/releases/7.9.0 - **added** — Shell tab completions for bash, zsh, fish, and PowerShell covering Prisma CLI commands, subcommands, options, flags, and option values - **added** — Prisma agent skills catalog installed automatically with prisma init for AI agents like Claude Code, Cursor, Codex, and Windsurf - **changed** — Broadened AI agent detection to cover Codex CLI, Qwen Code, GitHub Copilot CLI, OpenCode, Cline, Goose, Amp, Crush, Augment Code, Antigravity, Replit Agent, Devin, and generic AI_AGENT and AGENT environment variables - **changed** — Extended the AI safety checkpoint guard to db push --accept-data-loss to prevent destructive commands when an AI agent is detected - **removed** — Removed the migrate-reset tool from the prisma mcp server - **fixed** — Restored the OmitOpts generic default to fix a severe TypeScript performance regression in Prisma 7, bringing type-checking on large schemas from minutes back to seconds - **fixed** — The XOR type helper now rejects primitive values such as data: 5 at compile time instead of only at runtime - **fixed** — $queryRaw and $executeRaw now fail fast with a clear validation error when passed an invalid Date instead of silently serializing it as null - **fixed** — Generated client is no longer corrupted by documentation comments containing */ sequences; comment terminators are now escaped in both TypeScript and JavaScript generators - **fixed** — Improved runtime and TypeScript error messages when a driver adapter is missing from the PrismaClient constructor to include a copy-pasteable example and link to driver adapters documentation Today, we are excited to share the `7.9.0` stable release 🎉 **🌟 Star this repo for notifications about new releases, bug fixes & features — or [follow us on X](https://pris.ly/x)!** #### Highlights ##### ORM ###### Tab completions for the Prisma CLI Typing out CLI commands from memory is now optional. Prisma ships **shell tab completions** for `bash`, `zsh`, `fish`, and PowerShell, covering commands, subcommands, options, flags, and even option values. **Setting it up.** Most projects run Prisma through a package manager, so completions are enabled through `@bomb.sh/tab`'s package-manager integration — install it once, then source the completion for your package manager and shell: ```bash #### 1. Install @bomb.sh/tab globally npm install -g @bomb.sh/tab #### 2. Wire up your package manager + shell (pnpm shown; swap in npm / yarn / bun): echo 'source <(tab pnpm zsh)' >> ~/.zshrc # zsh echo 'source <(tab pnpm bash)' >> ~/.bashrc # bash tab pnpm fish > ~/.config/fish/completions/pnpm.fish # fish tab pnpm powershell > ~/.tab-pnpm.ps1 # PowerShell (then dot-source it from $PROFILE) ``` `@bomb.sh/tab` delegates to any locally-installed CLI that ships completions, so `pnpm prisma `, `pnpm exec prisma `, `yarn prisma `, and `bun x prisma ` all complete Prisma's commands, options, and values — no per-project setup. (`npx` and `bunx` don't support completion themselves; use `npm exec` and `bun x`.) If instead you have Prisma installed globally on your `PATH`, source its own completion directly: `source <(prisma complete zsh)` (or the `bash` / `fish` / `powershell` variant). This is built on [`@bomb.sh/tab`](https://github.com/bombshell-dev/tab/), the same completion library that powers other CLIs in the ecosystem — including Cloudflare, Nuxt, and Vitest — so the package-manager completions you enable for Prisma work for those tools too. A wonderful community contribution from [@AmirSa12](https://github.com/AmirSa12) ([#28351](https://github.com/prisma/prisma/pull/28351)) — thank you! https://github.com/user-attachments/assets/1f916a60-ee4d-40be-bb7d-74035d48ca83 ###### Prisma ORM, ready for AI agents Coding agents are now a first-class audience for Prisma, and 7.9.0 brings the first wave of work to make Prisma projects safe and productive for them to work in. **Agent skills installed with `prisma init`** ([#29689](https://github.com/prisma/prisma/pull/29689)) `prisma init` now installs the [prisma/skills](https://github.com/prisma/skills) catalog into freshly scaffolded projects. Agents such as Claude Code, Cursor, Codex, and Windsurf start out with current, version-relevant Prisma knowledge instead of relying on whatever happened to be in their training data. The install is best-effort and never blocks scaffolding; opt out at any time with `--no-skills`. ```terminal npx prisma@latest init ``` ![prisma init scaffolds a project and installs the Prisma agent skills catalog](https://github.com/user-attachments/assets/8244a6dc-cdad-4028-a652-bb5ac6e4b271) **A safer default around destructive commands** ([#29684](https://github.com/prisma/prisma/pull/29684), [#29691](https://github.com/prisma/prisma/pull/29691), [#29713](https://github.com/prisma/prisma/pull/29713)) Prisma's AI safety checkpoint refuses to run destructive commands when it detects that an AI agent is at the keyboard, unless the user has given explicit consent. In this release we: - **Broadened agent detection** to cover today's landscape — Codex CLI (now on Linux as well as macOS), Qwen Code, GitHub Copilot CLI, OpenCode, Cline, Goose, Amp, Crush, Augment Code, Antigravity, Replit Agent, and Devin — plus generic `AI_AGENT` / `AGENT` conventions so future agents are caught without a code change. - **Extended the guard to `db push --accept-data-loss`**, which previously bypassed the checkpoint even though it can drop data. - **Removed the `migra _[Truncated at 4000 characters — full notes: https://github.com/prisma/prisma/releases/tag/7.9.0]_ ### 7.8.0 - Date: 2026-04-22 - Version: 7.8.0 - Original notes: https://github.com/prisma/prisma/releases/tag/7.8.0 - Permalink: https://whatsnew.fyi/product/prisma/releases/7.8.0 - **added** — Add a queryPlanCacheMaxSize option to the PrismaClient constructor for fine-grained control over the query plan cache - **fixed** — Fix an equality filter panic and incorrect ::jsonb cast when filtering on PostgreSQL JSON list columns - **fixed** — Fix case-insensitive JSON field filtering (mode: insensitive) to work correctly with jsonField equality queries - **fixed** — Fix incorrect parameterization of enum values that have a custom database name set via @map - **fixed** — Fix a database parameter limit check (P2029) which could incorrectly reject or miss over-limit queries - **fixed** — Fix a regression that caused missing SQL Server VARCHAR casts for parameterized values - **fixed** — Fix a misleading error message in prisma migrate diff that referenced the --shadow-database-url CLI flag - **fixed** — Fix prisma migrate dev failing with CREATE INDEX CONCURRENTLY cannot run inside a transaction block when a migration contained concurrent index creation statements on PostgreSQL - **fixed** — Fix PostgreSQL introspection silently dropping sequence defaults when the database returns the schema-qualified form - **changed** — Make @prisma/adapter-d1 savepoint operations (createSavepoint, rollbackToSavepoint, releaseSavepoint) silently no-op with debug logging instead of executing SQL statements Today, we are excited to share the `7.8.0` stable release 🎉 **🌟 Star this repo for notifications about new releases, bug fixes & features — or [follow us on X](https://pris.ly/x)!** #### Highlights ##### ORM ###### Features **Prisma Client** - Added a `queryPlanCacheMaxSize` option to the `PrismaClient` constructor for fine-grained control over the query plan cache. Pass `0` to disable the cache entirely, or omit it to use the default cache size. A larger value can improve performance in applications that execute many unique queries, while a smaller one can reduce memory usage. (#29503) ###### Bug Fixes **Prisma Client** - Fixed an equality filter panic and incorrect `::jsonb` cast when filtering on PostgreSQL JSON list columns. Queries using `where: { jsonListField: { equals: [...] } }` no longer panic with a type mismatch or emit invalid SQL. (prisma/prisma-engines#5804) - Fixed case-insensitive JSON field filtering (`mode: insensitive`), allowing `where: { jsonField: { equals: "...", mode: "insensitive" } }` to work correctly. (prisma/prisma-engines#5806) - Fixed incorrect parameterization of enum values that have a custom database name set via `@map`. (#29422) - Fixed a database parameter limit check (`P2029`), which could incorrectly reject or miss over-limit queries. (#29422) - Fixed a regression that caused missing SQL Server `VARCHAR` casts for parameterized values. (prisma/prisma-engines#5801) Schema Engine - Fixed a misleading error message in `prisma migrate diff` that referenced the `--shadow-database-url` CLI flag, which was removed in Prisma 7. (#29455) - Fixed `prisma migrate dev` (and shadow database migration replay in general) failing with `CREATE INDEX CONCURRENTLY cannot run inside a transaction block` when a migration contained concurrent index creation statements on PostgreSQL. (prisma/prisma-engines#5799) - Fixed PostgreSQL introspection silently dropping sequence defaults when the database returns the schema-qualified form `pg_catalog.nextval('sequence_name'::regclass)` instead of the bare `nextval(...)`. Columns backed by sequences now correctly appear as `@default(autoincrement())` in the Prisma schema in all cases. (prisma/prisma-engines#5802) **Driver Adapters** - **@prisma/adapter-d1**: Savepoint operations (`createSavepoint`, `rollbackToSavepoint`, `releaseSavepoint`) now silently no-op with debug logging instead of executing SQL statements, consistent with how the D1 adapter already treats top-level transactions. (#29499) ##### Open roles at Prisma Interested in joining Prisma? We're growing and have several exciting opportunities across the company for developers who are passionate about building with Prisma. Explore our open positions on our [Careers page](https://www.prisma.io/careers#current) and find the role that's right for you. ##### Enterprise support Thousands of teams use Prisma and many of them already tap into our Enterprise & Agency Support Program for hands-on help with everything from schema integrations and performance tuning to security and compliance. With this program you also get priority issue triage and bug fixes, expert scalability advice, and custom training so that your Prisma-powered apps stay rock-solid at any scale. Learn more or join: https://prisma.io/enterprise. ### 7.7.0 - Date: 2026-04-07 - Version: 7.7.0 - Original notes: https://github.com/prisma/prisma/releases/tag/7.7.0 - Permalink: https://whatsnew.fyi/product/prisma/releases/7.7.0 - **added** — Add `prisma bootstrap` command that sequences the full Prisma Postgres setup into a single interactive flow, including init or scaffold, link, install dependencies, migrate, generate, and seed steps Today, we are excited to share the `7.7.0` stable release 🎉 **🌟 Star this repo for notifications about new releases, bug fixes & features — or [follow us on X](https://pris.ly/x)!** #### Highlights ##### ORM ###### `prisma bootstrap` command A new `prisma bootstrap` command ([#29374](https://github.com/prisma/prisma/pull/29374), [#29424](https://github.com/prisma/prisma/pull/29424)) sequences the full [Prisma Postgres](https://prisma.io/postgres) setup into a single interactive flow. It detects the current project state and runs only the steps that are needed: 1. **Init or scaffold** — In an empty directory, offers a choice of 10 starter templates (Next.js, Express, Hono, Fastify, Nuxt, SvelteKit, Remix, React Router 7, Astro, NestJS) from [prisma-examples](https://github.com/prisma/prisma-examples). In an existing project without a schema, runs `prisma init`. 2. **Link** — Authenticates via the browser and connects to a Prisma Postgres database. Skips if already linked. 3. **Install dependencies** — Detects the package manager and offers to install missing `@prisma/client`, `prisma`, and `dotenv`. 4. **Migrate** — Runs `prisma migrate dev` if the schema contains models. 5. **Generate** — Runs `prisma generate`. 6. **Seed** — Runs `prisma db seed` if a seed script is configured. Each side-effecting step prompts for confirmation. Re-running the command skips already-completed steps. **Basic usage** ```terminal npx prisma@latest bootstrap ``` **With a starter template** ```terminal npx prisma@latest bootstrap --template nextjs ``` **Non-interactive (CI)** ```terminal npx prisma@latest bootstrap --api-key "$PRISMA_API_KEY" --database "db_abc123" ``` ##### Open roles at Prisma Interested in joining Prisma? We're growing and have several exciting opportunities across the company for developers who are passionate about building with Prisma. Explore our open positions on our [Careers page](https://www.prisma.io/careers#current) and find the role that's right for you. ##### Enterprise support Thousands of teams use Prisma and many of them already tap into our Enterprise & Agency Support Program for hands-on help with everything from schema integrations and performance tuning to security and compliance. With this program you also get priority issue triage and bug fixes, expert scalability advice, and custom training so that your Prisma-powered apps stay rock-solid at any scale. Learn more or join: https://prisma.io/enterprise. ### 7.6.0 - Date: 2026-03-27 - Version: 7.6.0 - Original notes: https://github.com/prisma/prisma/releases/tag/7.6.0 - Permalink: https://whatsnew.fyi/product/prisma/releases/7.6.0 - **added** — Added a `prisma postgres link` command that connects a local project to a Prisma Postgres database - **added** — Added a `statementNameGenerator` option to @prisma/adapter-pg that accepts a custom prepared statement name generator for pg statement caching - **added** — Added support for usage of connection strings directly in the @prisma/adapter-pg constructor - **added** — Added a `useTextProtocol` option in @prisma/adapter-mariadb constructor to toggle between text and binary protocols - **added** — Added dark mode to Prisma Studio - **added** — Added ability to copy one or more rows as CSV or Markdown in Prisma Studio - **added** — Added multi-cell editing capability to Prisma Studio for editing multiple cells while inspecting your database - **added** — Added back relations in Prisma Studio that link to related records in other tables - **added** — Added generative SQL with AI in Prisma Studio to generate SQL statements from natural language - **fixed** — Disabled caching of `createMany` queries to avoid cache bloat and potential Node.js crashes in bulk operations - **fixed** — Made `NowGenerator` lazy to avoid synchronous `new Date()` calls, fixing Next.js dynamic usage errors in cached components - **fixed** — Fixed missing export of `GetGroupByPayload` type in the prisma-client generator - **fixed** — Added streaming parsing with automatic fallback to handle Prisma schemas that produce extremely large intermediate strings exceeding V8's string limits - **fixed** — Relaxed the @types/pg version constraint to ^8.16.0 in @prisma/adapter-pg for compatibility with newer PostgreSQL type definitions - **fixed** — Corrected error handling for `ColumnNotFound` errors in @prisma/adapter-pg to correctly extract column names from both quoted and unquoted PostgreSQL error messages - **changed** — Modified @prisma/adapter-mariadb to disable mariadb statement caching by default to address a reported leak Today, we are excited to share the `7.6.0` stable release 🎉 **🌟 Star this repo for notifications about new releases, bug fixes & features — or [follow us on X](https://pris.ly/x)!** #### Highlights ##### ORM ###### Features **CLI** - Added a `prisma postgres link` command that connects a local project to a Prisma Postgres database. This is the first command in a new `prisma postgres` command group for managing Prisma Postgres databases directly from the CLI. (#29352) **Driver Adapters** - **@prisma/adapter-pg**: Added a `statementNameGenerator` option that accepts a custom prepared statement name generator to allow users to leverage `pg` statement caching (#29395) - **@prisma/adapter-pg**: Added support for usage of connection strings directly in the constructor for improved ergonomics (#29287) - **@prisma/adapter-mariadb**: Added a `useTextProtocol` option in the constructor to toggle between text and binary protocols (#29392) ###### **Bug Fixes** **Prisma Client** - Disabled caching of `createMany` queries to avoid cache bloat and potential Node.js crashes in bulk operations (#29382) - Made `NowGenerator` lazy to avoid synchronous `new Date()` calls, fixing Next.js "dynamic usage" errors in cached components (#28724) - Fixed missing export of `GetGroupByPayload` type in the new `prisma-client` generator, making it accessible for TypeScript usage (#29346) **CLI** - Added streaming parsing with automatic fallback to handle Prisma schemas that produce extremely large intermediate strings (>500MB) that hit V8's string limits (#29377) **Driver Adapters** - **@prisma/adapter-pg**: Relaxed the `@types/pg` version constraint to `^8.16.0` for compatibility with newer PostgreSQL type definitions (#29390) - **@prisma/adapter-pg**: Corrected error handling for `ColumnNotFound` errors to correctly extract column names from both quoted and unquoted PostgreSQL error messages (#29307) - **@prisma/adapter-mariadb**: Modified the adapter to disable `mariadb` statement caching by default to address a reported leak (#29392) ##### Prisma Studio We’re continuing our work to improve Prisma Studio with more features being added. **Dark Mode** Need we say more? You’ve all asked for it, and it’s back. https://github.com/user-attachments/assets/214149dd-5dd3-4295-9fa3-0da3f8d28197 **Copy as markdown** Now, you can copy one or more rows as either CSV or Markdown CleanShot 2026-03-11 at 16 04 09@2x **Multi-cell editing** This is big one, something that folks have been asking for. Now, it’s possible to edit multiple cells while inspecting your database. If you make any changes, you’ll be prompted to either save or discard them. This makes manually adding new rows much easier to accomplish. **Back relations** If your data references another table, Prisma Studio now links to the related records, making it easy to inspect them. This makes traversing your database much simpler. https://github.com/user-attachments/assets/4977a926-413b-495f-b651-b7554eefea04 **Generative SQL with AI** If you need to inspect your database, instead of manually writing the SQL you may need, you can use natural language and AI to generate the appropriate SQL statements. https://github.com/user-attachments/assets/e57c0afb-c3ed-471b-b55a-42395a134863 ##### Open roles at Prisma Interested in joining Prisma? We’re growing and have several exciting opportunities across the company for developers who are passionate about building with Prisma. Explore our open positions on our [Careers page](https://www.prisma.io/careers#current) and find the role that’s right for you. ##### Enterprise support Thousands of teams use Prisma and many of them already tap into our Enterprise & Agency Support Program for hands-on help with every _[Truncated at 4000 characters — full notes: https://github.com/prisma/prisma/releases/tag/7.6.0]_ ### 7.5.0 - Date: 2026-03-11 - Version: 7.5.0 - Original notes: https://github.com/prisma/prisma/releases/tag/7.5.0 - Permalink: https://whatsnew.fyi/product/prisma/releases/7.5.0 - **added** — Support for nested transaction rollbacks via savepoints for SQL databases - **changed** — Made adapter-mariadb use the binary MySQL protocol to fix lossy number conversions - **changed** — Made @types/pg a direct dependency of adapter-pg for better TypeScript experience - **fixed** — Prisma.DbNull serializing as empty object in bundled environments like Next.js - **fixed** — DateTime fields returning Invalid Date with unixepoch-ms timestamps - **fixed** — Cursor-based pagination issue with @db.Date columns - **fixed** — Manual partial indexes are now preserved when partialIndexes preview feature is disabled - **fixed** — Partial index predicate comparison to handle quoted vs unquoted identifiers correctly - **fixed** — Excluded partial unique indexes from DMMF uniqueFields and uniqueIndexes to prevent incorrect findUnique input type generation - **added** — Multi-cell selection and full table search in Prisma Studio - **changed** — More intuitive filtering in Prisma Studio with option for raw SQL filters - **added** — Cmd+k command palette in Prisma Studio for keyboard-based navigation - **added** — Ability to run raw SQL queries against data in Prisma Studio Today, we are excited to share the `7.5.0` stable release 🎉 **🌟 Star this repo for notifications about new releases, bug fixes & features — or [follow us on X](https://pris.ly/x)!** #### Highlights ##### ORM ###### Features - **Added support for nested transaction rollbacks via savepoints (**[#21678](https://github.com/prisma/prisma/pull/21678)) Adds support for **nested transaction rollback behavior** for SQL databases: if an outer transaction fails, the inner nested transaction is rolled back as well. Implements this by tracking **transaction ID + nesting depth** so Prisma can reuse an existing open transaction in the underlying engine, and it also enables using **`$transaction` from an interactive transaction client**. ###### Bug fixes **Driver Adapters** - Made the `adapter-mariadb` use the binary MySQL protocol to fix an issue with lossy number conversions ([#29285](https://github.com/prisma/prisma/pull/29285)) - Made `@types/pg` a direct dependency of `adapter-pg` for better TypeScript experience out-of-the-box ([#29277](https://github.com/prisma/prisma/pull/29277)) **Prisma Client** - Resolved `Prisma.DbNull` serializing as empty object in some bundled environments like Next.js ([#29286](https://github.com/prisma/prisma/pull/29286)) - Fixed DateTime fields returning `Invalid Date` with `unixepoch-ms` timestamps in some cases ([#29274](https://github.com/prisma/prisma/pull/29274)) - Fixed a cursor-based pagination issue with `@db.Date` columns ([#29327](https://github.com/prisma/prisma/pull/29327)) **Schema Engine** - Manual partial indexes are now preserved when `partialIndexes` preview feature is disabled, preventing unnecessary drops and additions in migrations ([#5790](https://github.com/prisma/prisma-engines/pull/5790), [#5795](https://github.com/prisma/prisma-engines/pull/5795)) - Enhanced partial index predicate comparison to handle quoted vs unquoted identifiers correctly, eliminating needless recreate cycles ([#5788](https://github.com/prisma/prisma-engines/pull/5788)) - Excluded partial unique indexes from DMMF `uniqueFields` and `uniqueIndexes` to prevent incorrect `findUnique` input type generation ([#5792](https://github.com/prisma/prisma-engines/pull/5792)) ##### Studio With the launch of Prisma ORM v7, we also introduced a rebuilt version of Prisma Studio. With the feedback we’ve gathered since the release, we’ve added some high requested features to help make Studio a better experience. **Multi-cell Selection & Full Table Search** This release brings the ability to select multiple cells when viewing your database. In addition to being able to select multiple cells, you can also search across your database. You can search for a specific table or for specific cells within that table. ![Adobe Express - CleanShot 2026-03-04 at 21 15 08-2](https://github.com/user-attachments/assets/e3d2aa3d-ae03-47f0-a5d6-3530675864f7) **More intuitive filtering** Filtering is now easier to use, and includes an option for raw SQL filters. ![CleanShot 2026-03-11 at 11 26 35](https://github.com/user-attachments/assets/ba20f670-3770-4dcf-869f-673519bd847c) And if you are using Studio in Console, you can use ai generated filters: ![CleanShot 2026-03-11 at 11 28 18](https://github.com/user-attachments/assets/4bd1c328-2429-4fb1-948d-d8d841900f22) **Cmd+k Command Palette** You can now use the keyboard to perform most actions in Studio with the new cmd+k command palette ![CleanShot 2026-03-11 at 11 30 35](https://github.com/user-attachments/assets/691b7a6e-c677-480c-addc-db42fc2aa9a5) **Run raw SQL queries** Another feature we’ve included in Prisma Studio is the ability to run raw SQL queries against your data. There’s a new “SQL” tab in the sidebar that will bring you to page where you can perform any queries against your data. Below, we’re getting all the rows in the “Todo” table. ![Adobe Express - Screen Reco _[Truncated at 4000 characters — full notes: https://github.com/prisma/prisma/releases/tag/7.5.0]_ ### 7.4.2 - Date: 2026-02-27 - Version: 7.4.2 - Original notes: https://github.com/prisma/prisma/releases/tag/7.4.2 - Permalink: https://whatsnew.fyi/product/prisma/releases/7.4.2 - **fixed** — Fix a case-insensitive IN and NOT IN filter regression - **fixed** — Fix a query plan mutation issue that resulted in broken cursor queries - **fixed** — Fix an array parameter wrapping issue in push operations - **fixed** — Fix Uint8Array serialization in nested JSON fields - **fixed** — Fix an issue with MySQL joins that relied on non-strict equality - **fixed** — Update text column detection in @prisma/adapter-mariadb to check for a binary collation - **fixed** — Correct relationJoins compatibility check in @prisma/adapter-mariadb for MariaDB 8.x versions - **fixed** — Fix partial index predicate comparison on PostgreSQL and MSSQL Today, we are issuing a 7.4.2 patch release focused on bug fixes and quality improvements. ##### 🛠 Fixes **Prisma Client** - Fix a case-insensitive `IN` and `NOT IN` filter regression (https://github.com/prisma/prisma/pull/29243) - Fix a query plan mutation issue that resulted in broken cursor queries (https://github.com/prisma/prisma/pull/29262) - Fix an array parameter wrapping issue in push operations (https://github.com/prisma/prisma-engines/pull/5784) - Fix `Uint8Array` serialization in nested JSON fields (https://github.com/prisma/prisma/pull/29268) - Fix an issue with MySQL joins that relied on non-strict equality (https://github.com/prisma/prisma/pull/29251) **Driver Adapters** - **@prisma/adapter-mariadb**: Update text column detection to check for a binary collation (https://github.com/prisma/prisma/pull/29238) - **@prisma/adapter-mariadb**: Correct `relationJoins` compatibility check for MariaDB 8.x versions (https://github.com/prisma/prisma/pull/29246) **Schema Engine** - Fix partial index predicate comparison on PostgreSQL and MSSQL (https://github.com/prisma/prisma-engines/pull/5780) ##### 🙏 Huge thanks to our community Many of the fixes in this release were contributed by our amazing community members. We're grateful for your continued support and contributions that help make Prisma better for everyone! ### 7.4.1 - Date: 2026-02-19 - Version: 7.4.1 - Original notes: https://github.com/prisma/prisma/releases/tag/7.4.1 - Permalink: https://whatsnew.fyi/product/prisma/releases/7.4.1 - **fixed** — Fix cursor-based pagination regression with parameterised values - **fixed** — Preserve Prisma.skip through query extension argument cloning - **fixed** — Enable batching of multiple queries inside interactive transactions - **fixed** — Add missing JSON value deserialization for JSONB parameter fields - **fixed** — Apply result extensions correctly for nested and fluent relations - **fixed** — Allow missing config datasource URL and validate only when needed - **fixed** — Handle null values in type parsers for nullable columns in @prisma/adapter-ppg - **added** — Support where argument on field-level @unique for partial indexes - **changed** — Add object expression and object member support to schema reformatter Today, we are issuing a 7.4.1 patch release focused on bug fixes and quality improvements. ##### 🛠 Fixes **Prisma Client** - Fix cursor-based pagination regression with parameterised values (https://github.com/prisma/prisma/pull/29184) - Preserve `Prisma.skip` through query extension argument cloning (https://github.com/prisma/prisma/pull/29198) - Enable batching of multiple queries inside interactive transactions (https://github.com/prisma/prisma/pull/25571) - Add missing JSON value deserialization for JSONB parameter fields (https://github.com/prisma/prisma/pull/29182) - Apply result extensions correctly for nested and fluent relations (https://github.com/prisma/prisma/pull/29218) - Allow missing config datasource URL and validate only when needed (https://github.com/prisma/prisma-engines/pull/5777) **Driver Adapters** - **@prisma/adapter-ppg**: Handle null values in type parsers for nullable columns (https://github.com/prisma/prisma/pull/29192) **Prisma Schema Language** - Support `where` argument on field-level `@unique` for partial indexes (https://github.com/prisma/prisma-engines/pull/5774) - Add object expression and object member support to schema reformatter (https://github.com/prisma/prisma-engines/pull/5776) ##### 🙏 Huge thanks to our community Many of the fixes in this release were contributed by our amazing community members. We're grateful for your continued support and contributions that help make Prisma better for everyone! ### 7.4.0 - Date: 2026-02-11 - Version: 7.4.0 - Original notes: https://github.com/prisma/prisma/releases/tag/7.4.0 - Permalink: https://whatsnew.fyi/product/prisma/releases/7.4.0 - **added** — Introduce caching layer in Prisma Client that normalizes query shapes and caches compiled query plans in an LRU cache to reduce event loop contention under high concurrency - **added** — Add Partial Indexes (Filtered Indexes) support for PostgreSQL, SQLite, SQL Server, and CockroachDB behind the partialIndexes preview feature, allowing indexes that only include rows matching specific conditions - **added** — Support type-safe object syntax for partial index conditions using simple condition literals and filters - **added** — Support raw SQL syntax for partial indexes using the raw() function with database-specific predicates - **fixed** — Fix PostgreSQL migration scripts to support CREATE INDEX CONCURRENTLY in migrations - **fixed** — Fix BigInt precision loss in JSON aggregation for MySQL and CockroachDB by casting BigInt values to text - **fixed** — Fix connection failures with non-ASCII database names by properly URL-decoding database names in connection strings - **fixed** — Fix silent transaction commit errors in PlanetScale adapter by ensuring COMMIT failures are properly propagated - **fixed** — Fix race condition errors (EREQINPROG) in SQL Server adapter by serializing commit and rollback operations using mutex synchronization - **fixed** — Fix MSSQL connection string parsing to properly handle curly brace escaping for passwords containing special characters Today, we are excited to share the `7.4.0` stable release 🎉 **🌟 Star this repo for notifications about new releases, bug fixes & features — or [follow us on X](https://pris.ly/x)!** #### Highlights ##### ORM ###### Caching in Prisma Client Today’s release is a big one, as we introduce a new caching layer into Prisma ORM. But why the need for a caching layer? In Prisma 7, the query compiler runs as a WebAssembly module directly on the JavaScript main thread. While this simplified the architecture by eliminating the separate engine process, it introduced a trade-off: every query now synchronously blocks the event loop during compilation. For individual queries, compilation takes between 0.1ms and 1ms, which is barely noticeable in isolation. But under high concurrency this overhead adds up and creates event loop contention that affects overall application throughput. For instance, say we have a query that is run over and over, but is a similar shape: ```tsx // These two queries have the same shape: const alice = await prisma.user.findUnique({ where: { email: 'alice@prisma.io' } }) const bob = await prisma.user.findUnique({ where: { email: 'bob@prisma.io' } }) ``` Prior to v7.4.0, this would be reevaluated ever time the query is run. Now, Prisma Client will extract the user-provided values and replaces them with typed placeholders, producing a normalized query shape: ``` prisma.user.findUnique({ where: { email: %1 } }) // cache key ↑ %1 = 'alice@prisma.io' (or 'bob@prisma.io') ``` This normalized shape is used as a cache key. On the first call, the query is compiled as usual and the resulting plan is stored in an LRU cache. On every subsequent call with the same query shape, regardless of the actual values, the cached plan is reused instantly without invoking the compiler. We have more details on the impact of this change and some deep dives into Prisma architecture in an upcoming blog post! ###### Partial Indexes (Filtered Indexes) Support We're excited to announce **Partial Indexes** support in Prisma! This powerful community-contributed feature allows you to create indexes that only include rows matching specific conditions, significantly reducing index size and improving query performance. Partial indexes are available behind the `partialIndexes` preview feature for PostgreSQL, SQLite, SQL Server, and CockroachDB, with full migration and introspection support. **Basic usage** Enable the preview feature in your schema: ```groovy generator client { provider = "prisma-client-js" previewFeatures = ["partialIndexes"] } ``` **Raw SQL syntax** For maximum flexibility, use the `raw()` function with database-specific predicates: ```groovy model User { id Int @id email String status String @@unique([email], where: raw("status = 'active'")) @@index([email], where: raw("deletedAt IS NULL")) } ``` **Type-safe object syntax** For better type safety, use the object literal syntax for simple conditions: ```groovy model Post { id Int @id title String published Boolean @@index([title], where: { published: true }) @@unique([title], where: { published: { not: false } }) } ``` ###### Bug Fixes Most of these fixes are **community contributions** - thank you to our amazing contributors! - [**prisma/prisma-engines#5767**](https://github.com/prisma/prisma-engines/pull/5767): Fixed an issue with PostgreSQL migration scripts that prevented usage of `CREATE INDEX CONCURRENTLY` in migrations - [**prisma/prisma-engines#5752**](https://github.com/prisma/prisma-engines/pull/5752): Fixed BigInt precision loss in JSON aggregation for MySQL and CockroachDB by casting BigInt values to text (from community member [polaz](https://github.com/polaz)) - [**prisma/prisma-engines#5750**](https://github.com/prism _[Truncated at 4000 characters — full notes: https://github.com/prisma/prisma/releases/tag/7.4.0]_