Prisma 5.0.0 contains a lot of changes that improve Prisma’s performance, especially in serverless environments.
As this is a major release, it includes a few breaking changes that might affect a small group of our users. Before upgrading, we recommend that you check out our upgrade guide to understand the impact on your application.
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Highlights
Here’s a summary of the changes:
Preview features moved to General Availability
jsonProtocol: improves communication between Prisma Client and the query engine, makes Prisma faster by default.
fieldReference: adds support for comparing columns of the same table.
extendedWhereUnique: adds support for non-unique columns inside where clauses for queries that operate on unique records.
General improvements and breaking changes
Dependency version changes
Minimum Node.js version change to 16.13.0
Minimum TypeScript version change to 4.7
Minimum PostgreSQL version change to 9.6
Prisma Client embedded SQLite version upgrade to 3.41.2
Main Changes
Removal of rejectOnNotFound property
Removal of some array shortcuts
cockroachdb provider is now required when connecting to a CockroachDB database
Removed runtime/index.js from the generated Prisma Client
Other Changes
Removal of deprecated flags in the Prisma CLI
Removal of the beforeExit hook from the library engine
Removal of deprecated prisma2 executable
Removal of deprecated experimentalFeatures generator property in the Prisma schema
Renamed migration-engine to schema-engine
A JSON-based protocol that improves Prisma’s performance
We’re thrilled to announce that the jsonProtocol Preview feature is now Generally Available. You can now remove the Preview feature flag from your schema after upgrading. We made the JSON-based wire protocol the default protocol used for communication between Prisma Client and the query engine.
We introduced this feature in version 4.11.0 to improve Prisma’s performance. Previously, Prisma used a GraphQL-like protocol to communicate between Prisma Client and the query engine. Applications with larger schemas had higher CPU and memory consumption compared to smaller schemas which created a performance bottleneck.
The JSON-based wire protocol improves efficiency when Prisma Client is communicating with the query engine.
Removal of array shortcuts
We took the opportunity to remove some array shortcuts to make our typings more consistent and logical. These shortcuts were a way to add a single element as a value to an array-based operator instead of wrapping a single element in an array. We will now require array values for the following:
OR operator shortcuts
in and notIn operator shortcuts
PostgreSQL JSON path field shortcut
... (truncated)
Commits
a7ac505 fix(client)!: widen and correct the type of generator config values (#20119)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps @prisma/generator-helper from 4.13.0 to 5.0.0.
Release notes
Sourced from
@prisma/generator-helper
's releases.... (truncated)
Commits
a7ac505
fix(client)!: widen and correct the type of generator config values (#20119)4c2469e
chore(deps): update definitelytyped (#19744)374a94c
chore(deps): update jest to v29.6.0 (#20063)9f936e8
chore: rename migration-engine to schema-engine (#19634)3e5ea31
fix(generator-helper): Typo fix in DMMF types (#19913)cae9462
chore(deps): update devdependencies patch (non-major) (#19286)c9c5c0a
chore(deps): update dependency@types/jest
to v29.5.2 (#19640)0b8dedc
chore(deps): update definitelytyped (#19526)aa527d1
fix(generator-helper): continuously handle generator errors (#19385)bfc2193
fix(client): better errors for engine not found (#19330)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)