chore(deps): bump @prisma/client from 3.12.0 to 4.4.0
Bumps @prisma/client from 3.12.0 to 4.4.0.
Release notes
Sourced from @prisma/client's releases.
4.4.0
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Major improvements
General improvements
In the last sprint, we focused our efforts on squashing as many bugs as we could. You can find the full list of improvements and bug fixes in the Fixes and improvements section below.
Some of the improvements we made include but are not limited to:
- Improved optimistic concurrency control (GitHub issue)
- Improved decimal precision
- Improved handling of big amounts of prepared statement placeholders: Databases impose limits when they hit a specific number, and when a query (either generated by Prisma Client or provided by the user directly as a raw query) hits it some users ran into a misleading
Can't reach database servererror message (GitHub issue). The error message will now be more useful (P2035error code), and Prisma Client should not cause these errors anymore.If you notice any regression, please make sure to create a GitHub issue. We touched a lot of code in this sprint, and even though we are confident in our tests, something might have slipped through the cracks. We'd like to fix the regressions as soon as possible.
isolationLevelfor sequential transaction operationsIn version
4.2.0, we added support for setting transaction isolation levels for interactive transactions (Preview). You can now define isolation levels for sequential transaction operations:prisma.$transaction([]).Isolation levels describe different types of trade-offs between isolation and performance that databases can make when processing transactions. Isolation levels determine what types of data leaking can occur between transactions or what data anomalies can occur. To set the transaction isolation level, use the
isolationLeveloption in the second parameter of the API. For example:await prisma.$transaction( [ // sequential operations prisma.user.create({ data: {/** args */ } }), prisma.post.create({ data: {/** args */ } }) ], { isolationLevel: Prisma.TransactionIsolationLevel.Serializable } )Prisma Client supports the following isolation levels if they're available in your database provider:
ReadCommittedReadUncommittedRepeatableReadSerializableSnapshotLearn more about it in our documentation.
New
P2034error code for transaction conflicts or deadlocksWhen using certain isolation levels, it is expected that a transaction can fail due to a write conflict or a deadlock, throwing an error. One way to solve these cases is by retrying the transaction.
... (truncated)
Commits
b3c3f07test(client): skip 8832 (#15565)10a0ec4chore(deps): update engines to 4.4.0-66.f352a33b70356f46311da8b00d83386dd9f14...0016522test(postgres): add regression test for #8832 and #9326 (#15556)ce16bc7test(client): skip test for #13913 fix (#15559)3a8282btest(client): add regression test for #15204 (#15530)fc7aa78test(client): uint id overflow #15264 (#15549)b0e77cftest(client): int overflow #13913 (#15545)dd9a8d6test(client): add occ test with nested operation (#15550)69d5d72test: Add test for retrying serializable transaction (#15494)01ba790test(client): add test for MongoDB connection string error messages (#15486)- Additional commits viewable in compare view
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 rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major versionwill 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 versionwill 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 dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)