prisma/prisma (@prisma/client)
### [`v5.10.0`](https://togithub.com/prisma/prisma/releases/tag/5.10.0)
[Compare Source](https://togithub.com/prisma/prisma/compare/5.9.1...5.10.0)
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://togithub.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://togithub.com/prisma/prisma/issues/22294)
- [\[5.9.0 Bug\] `Prisma.TransactionClient` appears to be missing types](https://togithub.com/prisma/prisma/issues/22870)
- [Error after Upgrading from 5.8.1 to 5.9.0](https://togithub.com/prisma/prisma/issues/22875)
- [\[5.9.0\] `@prisma/client` in Next.js middleware](https://togithub.com/prisma/prisma/issues/22877)
- [\[v5.9.0\] `$extends` always return `any`](https://togithub.com/prisma/prisma/issues/22884)
- [Prisma edge runtime error](https://togithub.com/prisma/prisma/issues/22886)
- [\[5.9.0\] All queries result in any type](https://togithub.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://togithub.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://togithub.com/prisma/prisma/issues/22893)
- [v5.9.0 / Don't generate type. And the error from the previous version is still there](https://togithub.com/prisma/prisma/issues/22896)
- [\[5.9.0\] Getting strange types after generating](https://togithub.com/prisma/prisma/issues/22903)
- [relationJoins: "The column `t3.bookGenreTitle` does not exist in the current database"](https://togithub.com/prisma/prisma/issues/22926)
- [Missing export @prisma/client/generator-build](https://togithub.com/prisma/prisma/issues/22927)
- [`relationJoins` preview feature: called `Option::unwrap()` on a `None` value](https://togithub.com/prisma/prisma/issues/22971)
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
5.9.1
->5.10.0
5.9.1
->5.10.0
Release Notes
prisma/prisma (@prisma/client)
### [`v5.10.0`](https://togithub.com/prisma/prisma/releases/tag/5.10.0) [Compare Source](https://togithub.com/prisma/prisma/compare/5.9.1...5.10.0) 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://togithub.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://togithub.com/prisma/prisma/issues/22294) - [\[5.9.0 Bug\] `Prisma.TransactionClient` appears to be missing types](https://togithub.com/prisma/prisma/issues/22870) - [Error after Upgrading from 5.8.1 to 5.9.0](https://togithub.com/prisma/prisma/issues/22875) - [\[5.9.0\] `@prisma/client` in Next.js middleware](https://togithub.com/prisma/prisma/issues/22877) - [\[v5.9.0\] `$extends` always return `any`](https://togithub.com/prisma/prisma/issues/22884) - [Prisma edge runtime error](https://togithub.com/prisma/prisma/issues/22886) - [\[5.9.0\] All queries result in any type](https://togithub.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://togithub.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://togithub.com/prisma/prisma/issues/22893) - [v5.9.0 / Don't generate type. And the error from the previous version is still there](https://togithub.com/prisma/prisma/issues/22896) - [\[5.9.0\] Getting strange types after generating](https://togithub.com/prisma/prisma/issues/22903) - [relationJoins: "The column `t3.bookGenreTitle` does not exist in the current database"](https://togithub.com/prisma/prisma/issues/22926) - [Missing export @prisma/client/generator-build](https://togithub.com/prisma/prisma/issues/22927) - [`relationJoins` preview feature: called `Option::unwrap()` on a `None` value](https://togithub.com/prisma/prisma/issues/22971)Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by Mend Renovate. View repository job log here.