Prisma 5.10.0stable Released Feb 20, 2024
Impact Score: 5/10

Prisma 5.10.0 — Release Notes & Engineering Impact

Source available — automated, not human-reviewed

Component: prisma · Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Compatibility not verified — check source notes
$ npm install --save-dev --save-exact [email protected]
📄 .MD
⚡ Executive Summary (TL;DR)

Prisma 5.10.0. Source highlight: Today, we are excited to share the `5.10.0` stable release 🎉

Who Does This Impact? (Role-Based Analysis)

💻 Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

📊 Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

⚙️ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

✨ New Features & Capabilities (2)

  • called `Option::unwrap()` on a `None` value when using the relationJoins preview feature with driver adapters
  • `relationJoins` preview feature: called `Option::unwrap()` on a `None` value

🔧 Bug Fixes & Patches (1)

  • [[5.9.0 Bug] `Prisma.TransactionClient` appears to be missing types](https://github.com/prisma/prisma/issues/22870)
📄 View Raw Release Notes (Original Developer Log)
Today, we are excited to share the `5.10.0` stable release 🎉 🌟 **Help us spread the word about Prisma by starring the repo ☝️ or [posting on X](https://twitter.com/intent/post?text=Check%20out%20the%20latest%20%40prisma%20release%20v5.10.0%20%F0%9F%9A%80%0D%0A%0D%0Ahttps%3A%2F%2Fgithub.com%2Fprisma%2Fprisma%2Freleases%2Ftag%2F5.10.0) about the release.** ## Highlights ### Optimized relation queries in MySQL (Preview) This release brings the optimizations for relation queries from the previous releases to MySQL as well! This means that by enabling the `relationJoins` Preview feature with the `mysql` database provider, you now also get access to the `relationLoadStrategy` option in relation queries that let you choose whether you want to merged relations on the application- or database-level. If you enable the `relationJoins` Preview feature, you can choose between the `join` and `query` options: - `join` (default): Sends a single query to the database and joins the data on the database-level. - `query`: Sends multiple queries to the database and joins the data on the application-level. To get started, enable the Preview feature in your Prisma schema: ```prisma // schema.prisma generator client { provider = "prisma-client-js" previewFeatures = ["relationJoins"] } ``` Be sure to re-generate Prisma Client afterwards: ``` npx prisma generate ``` And finally, specify the relation loading strategy for your relation query via the `relationLoadStrategy` option as follows: ```ts await prisma.user.findMany({ relationLoadStrategy: 'join', // or 'query' include: { posts: true, }, }) ``` Note that in the example above, the `relationLoadStrategy` could be omitted altogether because `join` is used as the default value. A few notes about `relationLoadStrategy` support on MySQL: - `relationLoadStrategy` is supported for MySQL v8.0.14 and higher. MariaDB is not supported. - Prisma ORM uses correlated sub-queries for MySQL (as opposed to `LATERAL` JOINs which are used on PostgreSQL). ### Configure transaction options in the `PrismaClient` constructor This feature enables you to configure the following transaction options on a global level via the `PrismaClient` constructor: - `isolationLevel`: Sets the [transaction isolation level](https://www.prisma.io/docs/orm/prisma-client/queries/transactions#transaction-isolation-level). By default, this is set to the value currently configured in your database. - `timeout`: The maximum amount of time the interactive transaction can run before being canceled and rolled back. The default value is 5 seconds. - `maxWait`: The maximum amount of time Prisma Client will wait to acquire a transaction from the database. The default value is 2 seconds. Here is an example of how you can set this value globally for all transactions: ```ts const prisma = new PrismaClient({ transactionOptions: { isolationLevel: 'ReadCommitted', timeout: 1_000, // 1 sec maxWait: 2_000 // 2 sec } }) ``` Thanks a lot to our fantastic community member [`@tockn`](https://github.com/tockn), who took the initiative to implement this feature in Prisma ORM 🎉 Note that you can still override the global values by [setting them on a particular transaction](https://www.prisma.io/docs/orm/prisma-client/queries/transactions#transactions-options). ### New `P2037` code for “Too many database connections opened” errors We introduced a new error code for “Too many database connections opened” errors: `P2037`. You can find all error codes in our [documentation](https://www.prisma.io/docs/orm/reference/error-reference#prisma-client-query-engine). ### Access the Prisma Data Platform via Prisma CLI Now available in Early Access, you can manage your workspace and configure [Prisma Accelerate](https://www.prisma.io/docs/accelerate) and [Prisma Pulse](https://www.prisma.io/docs/pulse) directly from the terminal. Visit our [docs](https://www.prisma.io/docs/platform/platform-cli/commands) to learn more about the integration and try it out for yourself! ## Fixes and improvements ### Prisma Client - [called `Option::unwrap()` on a `None` value when using the relationJoins preview feature with driver adapters](https://github.com/prisma/prisma/issues/22294) - [[5.9.0 Bug] `Prisma.TransactionClient` appears to be missing types](https://github.com/prisma/prisma/issues/22870) - [Error after Upgrading from 5.8.1 to 5.9.0](https://github.com/prisma/prisma/issues/22875) - [[5.9.0] `@prisma/client` in Next.js middleware](https://github.com/prisma/prisma/issues/22877) - [[v5.9.0] `$extends` always return `any`](https://github.com/prisma/prisma/issues/22884) - [Prisma edge runtime error](https://github.com/prisma/prisma/issues/22886) - [[5.9.0] All queries result in any type](https://github.com/prisma/prisma/issues/22888) - [`Error: Prisma Client is unable to run in an edge runtime. As an alternative, try Accelerate: https://pris.ly/d/accelerate.`](https://github.com/prisma/prisma/issues/22889) - [[5.9.0] Error: Prisma Client is unable to run in an edge runtime. As an alternative, try Accelerate: https://pris.ly/d/accelerate.](https://github.com/prisma/prisma/issues/22893) - [v5.9.0 / Don't generate type. And the error from the previous version is still there](https://github.com/prisma/prisma/issues/22896) - [[5.9.0] Getting strange types after generating](https://github.com/prisma/prisma/issues/22903) - [relationJoins: "The column `t3.bookGenreTitle` does not exist in the current database"](https://github.com/prisma/prisma/issues/22926) - [Missing export @prisma/client/generator-build](https://github.com/prisma/prisma/issues/22927) - [`relationJoins` preview feature: called `Option::unwrap()` on a `None` value](https://github.com/prisma/prisma/issues/22971)