fix(deps): update prisma monorepo to v5 (major) - autoclosed #39
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^4.16.2
->^5.2.0
^4.16.2
->^5.2.0
Release Notes
prisma/prisma (@prisma/client)
v5.2.0
Compare Source
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Highlights
Improved Prisma Client experience for Prisma Accelerate and Data Proxy
In this release, we’ve made the following improvements to Prisma Client when using Prisma Accelerate or Prisma Data Proxy:
Prisma Client will now automatically determine how it should connect to the database depending on the protocol in the connection string. If the connection string starts with
prisma://
, Prisma Client will try to connect to your database using Prisma Accelerate or Prisma Data Proxy.Prisma Studio now works with Prisma Data Proxy and Prisma Accelerate.
We’ve introduced a new
--no-engine
flag which will prevent a Query Engine file from being included in the generated Prisma Client. This flag will also help ensure the bundle size of your application remains small by excluding the Query Engine files from the generated Prisma Client.The
--data-proxy
and--accelerate
flags have not been removed but are now aliases for the new--no-engine
flag.We recommend using the
--no-engine
flag when generating Prisma Client that uses either Accelerate or Data Proxy.Simplified connection string override in Prisma Client
This release simplifies the API used when programmatically overriding the connection string by introducing the
datasourceUrl
property in Prisma Client’s constructor. This means you do not have to use the datasource name defined in your Prisma schema.Query performance improvements
Continuing our work from 5.1.0 we made further performance improvements around the queries Prisma executes, targeting one-to-many relation fields and nested updates.
Use
LIMIT
in one-to-many relations on a single parentIn cases where there is a single parent with a one-to-many relation included (
findFirst
,findUnique
,findMany({ take: 1 })
), we now utilizeLIMIT
at the database level to restrict the number of related items returned instead of retrieving all related items into memory and performing atake
in memory.For situations where you have many related objects but only need a few, you should see a dramatic improvement in speed and memory usage.
Note: we are still working on bringing this improvement to other parts of Prisma Client in upcoming releases. If multiple parent records are returned, the previous behavior is used.
Further improvements for nested writes
Thanks to our introduction of using
RETURNING
in some cases in 5.1.0, we could now improve performance in nested writes by removing reload nodes. This will now result in one less query per relation traversed in a nested write. For more info, check out the pull request.Prisma Client query
Before v5.2.0
5.2.0 and later
Fixes and improvements
Prisma Client
limit
is gone whenfindUnique
with include relationCannot fetch data from service: include is not a function
Error while using Next.js with Data Proxytake
key doesn't work correctly for nested query that returns one item with its nested childrendisconnect: true
does not appear to delete the foreign key in the returned dataneeds
andcount
methodmockDeep<PrismaClient>()
@prisma/client/edge
can not find environment variable<Model>CountOutputTypeDefaultArgs
does not existPrisma Migrate
prisma generate
when Unsupported field defined in a Composite typeCredits
Huge thanks to @skyzh, @alula, @michaelpoellath, @RobertCraigie, @darthmaim, @Gerschtli, @andyjy, @mejiaej, @iurylippo, @mrazauskas, @coder246, @RDIL for helping!
v5.1.1
Compare Source
Today, we are issuing the
5.1.1
patch release.Fixes in Prisma Client
disconnect: true
does not appear to delete the foreign key in the returned dataneeds
andcount
methodv5.1.0
Compare Source
Today, we are excited to share the
5.1.0
stable release 🎉🌟 Help us spread the word about Prisma by starring the repo ☝️ or tweeting about the release.
Highlights
After two big releases where we released Client extensions for production usage (
4.16.0
) and made Prisma faster by default (5.0.0
), we have focused on some smaller issues to make the experience with these new features even better.Community contributions
Our community has been on the roll! We appreciate everyone who helps us by opening a GitHub issue or proposing a fix via Pull Requests. In this release, we're excited to highlight multiple community contributions:
PrismaAction
type, missingfindUniqueOrThrow
andfindFirstOrThrow
https://github.com/prisma/prisma/pull/17471 by @mejiaej and missinggroupBy
https://github.com/prisma/prisma/pull/19985 by @iurylippoBetter performance: Fewer SQL queries on PostgreSQL & CockroachDB
In our continued and ongoing work to make Prisma faster, we identified some Prisma Client queries that led to multiple SQL statements being executed — although in specific databases, that was not necessary.
Hence we optimized our internal SQL generation for PostgreSQL and CockroachDB to generate more efficient SQL queries:
Simple
create
queryIn a simple
create
query,RETURNING
makes the second query and the transaction statements obsolete:Prisma Client query
Before v5.1.0
5.1.0 and later
Simple
update
queryFor a simple
update
query,RETURNING
makes both additional queries and the transaction statements obsolete:Prisma Client query
Before v5.1.0
5.1.0 and later
Simple
update
query, return with relation valueOne
SELECT
query could easily be dropped in a simpleupdate
query that should return a relation value as well:Prisma Client query
Before v5.1.0
5.1.0 and later
Empty
update
queryAn empty
update
query can be optimized to skip the transaction and the second identical query by creating specific handling for this edge case in our code:Prisma Client query
Before v5.1.0
5.1.0 and later
Simple + relation
update
query (but do not return relation value)An update of both the model and its relation, we could drop 2
SELECT
queries that we did before without ever using their return values:Prisma Client query
Before v5.1.0
5.1.0 and later
In the next releases, we will continue optimizing Prisma Client queries to only run the minimal amount of SQL queries necessary.
If you notice any Prisma Client queries that are affected right now, please check the issues under our
performance/queries
label. If you didn’t find one for what you’re seeing, please create a new issue. This will be super useful for us to understand all (edge) cases. Thank you!Prisma Studio now supports
directUrl
Our CLI command
prisma studio
that opens Prisma Studio now also can use thedirectUrl
property of thedatasource
block so you can make it talk to a different database than defined inurl
. This makes it easier to use Studio alongside the Prisma Data Proxy and Accelerate.Prisma Client: No more type clashes
We fixed (almost) all cases where using a specific term as a model name in your Prisma Schema would lead to a type clash due to Prisma’s generated typings. As a result of a type clash, it was not possible to use that model in your code (this was e.g. the case if you named a model
Model
orModelUpdate
).We also deprecated the
<ModelName>Args
type as part of that fix. Going forward,<ModelName>DefaultArgs
should be used instead.Fixes and improvements
Prisma Client
X
andXUpdate
Model
andModelUpdate
is defined in the schema@prisma/internals
(previously @prisma/sdk) uses deprecated dependencies[email protected]
viatemp-write 4.0.0
Datasource
breaks generated return typesmodel
names cause clashes in generated types$extends
TS error: "Inferred type of this node exceeds the maximum length the compiler will serialize" with"declaration": true
intsconfig
Type '"findUniqueOrThrow"' is not assignable to type 'PrismaAction'
Promise
breaks types forPrismaPromise
include
not working on models ending with...Update
with unique compound indexLogLevel
enum conflicts with built-in Prisma typePrisma.XyzFindManyArgs
breaksfindMany
typing in v4.16.0+this.$on("beforeExit")
doesn't work anymore on 5.0.0Error: Unknown value type
on nested createfindUnique
on@unique
columns that are enums<Tablename>UpsertArgs
select field does not match type fordb.<tablename>.upsert(item)
by
ingroupBy
in 5.0.0TypeError [ERR_INVALID_URL]: Invalid URL
whenHTTP(S)_PROXY
en var has is set to a URL without a protocoltsc --watch
fails withJavaScript heap out of memory
errorGetResult
Prisma Studio
directUrl
inprisma studio
Language tools (e.g. VS Code)
Credits
Huge thanks to @skyzh, @alula, @michaelpoellath, @RobertCraigie, @Gerschtli, @andyjy, @mejiaej, @iurylippo, @mrazauskas for helping!
v5.0.0
Compare Source
We’re excited to share the
5.0.0
release today 🎉Prisma
5.0.0
contains a lot of changes that improve Prisma’s performance, especially in serverless environments. If you want to learn more about the performance improvements, we wrote a blog post that sums up all the changes we made: Prisma 5: Faster by Default.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:
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 insidewhere
clauses for queries that operate on unique records.rejectOnNotFound
propertycockroachdb
provider is now required when connecting to a CockroachDB databaseruntime/index.js
from the generated Prisma ClientbeforeExit
hook from the library engineprisma2
executableexperimentalFeatures
generator property in the Prisma schemamigration-engine
toschema-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 shortcutsin
andnotIn
operator shortcutspath
field shortcutHere’s an example query using the
OR
operator shortcut for a single element;We recommend taking a look at the upgrade guide to learn how you can update your queries to work in Prisma 5.
Support for comparing multiple columns
We’re excited to announce that the
fieldReference
Preview feature is now stable and Generally Available. This means you can use this feature without the Preview feature flag in your Prisma schema.We first introduced this feature in 4.5.0 to add the ability to compare columns on the same table. For example, the following query returns records where the
quantity
value is less than thewarnQuantity
of a product:To learn more about this feature, refer to our documentation.
Support for filtering non-unique columns in queries for a unique record
We’re excited to announce the
extendedWhereUnique
Preview feature is now Generally Available. This means you can use the feature without the Preview feature flag in the Prisma schema.We first introduced this feature in version 4.5.0 to add support for non-unique columns inside
where
clauses for queries that operate on unique records, such asfindUnique
,update
, anddelete
, which was previously not possible.For example, consider the following model:
You can filter on non-unique columns such as the
version
field as follows:To learn more about this feature, refer to our documentation.
Minimum Node.js version change to 16.13.0
The minimum version of Node.js Prisma supports is
16.13.0
. If you're using an earlier version of Node.js, you will need to upgrade your Node.js version.Refer to our system requirements for the minimum versions Prisma requires.
Minimum TypeScript version change to 4.7
The minimum version of TypeScript Prisma supports is 4.7. If your project is using an earlier version of TypeScript, you will need to upgrade your TypeScript version.
Refer to our system requirements for the minimum versions Prisma requires.
Minimum PostgreSQL version change to 9.6
The minimum version of PostgreSQL Prisma supports is version 9.6. If you’re either using 9.4 or 9.5, you will need to update your PostgreSQL version to at least 9.6.
Refer to our system requirements for the minimum database versions Prisma requires.
Prisma Client embedded SQLite version upgrade
We upgraded the embedded version of SQLite from 3.35.4 to 3.41.2. We do not anticipate any breaking changes or changes needed in projects using SQLite. However, if you’re using SQLite, especially with raw queries that might go beyond Prisma's functionality, make sure to check the SQLite changelog.
Removal of
rejectOnNotFound
propertyIn version 5.0.0, we removed the
rejectOnNotFound
parameter from Prisma Client that was deprecated in version 4.0.0. We removed this feature to provide better type-safety using thefindUniqueOrThrow
andfindFirstOrThrow
methods as well have a consistent API.If you are using the
rejectOnNotFound
parameter we recommend either:findFirstOrThrow
orfindUniqueOrThrow
methods if enabled at a query-levelfindFirstOrThrow
andfindUniqueOrThrow
model methods with your custom error handling if enabled at the client-levelWe recommend taking a look at the upgrade guide for more information on how to adapt your application if you’re using
rejectOnNotFound
.cockroachdb
provider is now required when connecting to a CockroachDB databasePrior to adding explicit support for CockroachDB with the
cockroachdb
provider in 3.9.0, it was possible to use the PostgreSQL provider when working with CockroachDB databases.We’re now making it mandatory to use the CockroachDB connector when working with CockroachDB databases. CockroachDB and PostgreSQL have a few differences such as the available native types which impact the generated migrations.
If you were using the PostgreSQL connector to work with CockroachDB, take a look at the upgrade guide to learn how you can update your connector.
Removal of the generated
runtime/index.js
file from Prisma ClientWith Prisma 5, we removed the
runtime/index.js
file from Prisma Client. If you were using APIs fromruntime/index.js
, such asDecimal
,PrismaClientKnownRequestError
,NotFoundError
,PrismaClientUnknownRequestError
, we recommend updating your imports:We recommend taking a look at the upgrade guide to learn how you can migrate to Prisma 5
Removal of the
beforeExit
hook from thelibrary
query engineWe removed the
beforeExit
hook from the defaultlibrary
Query Engine. We recommend using the built-in Node.js exit events.-prisma.$on('beforeExit', () => { /* your code */ }) // Replacements process.on('beforeExit', () => { /* your code */ }) process.on('exit', exitHandler) process.on('SIGINT', exitHandler) process.on('SIGTERM', exitHandler) process.on('SIGUSR2', exitHandler)
We recommend taking a look at the upgrade guide to learn how you can migrate to Prisma 5.
Removal of deprecated
prisma2
executableWhen we released Prisma 2, the
prisma2
executable was used to differentiate it from Prisma 1. In a later release, theprisma2
CLI took over theprisma
executable name.The
prisma2
executable has been deprecated for a while and will now be removed. If you’re usingprisma2
in your scripts, replace it withprisma
.Removal of deprecated flags in the Prisma CLI
We removed the following deprecated flags in the Prisma CLI:
--preview-feature
: used in theprisma db execute
,prisma db seed
, andprisma migrate diff
commands--experimental
and--early-access-feature
: used in theprisma migrate
commands such asprisma migrate dev
--force
: forprisma db push
. The--force
flag was replaced by--accept-data-loss
in version 2.17.0--experimental-reintrospection
and--clean
: forprisma db pull
In the event you’re using one of these flags, we recommend removing the flags.
Removal of deprecated
experimentalFeatures
generator propertyIn this release, we removed the
experimentalFeatures
property that used to be in the generator property in the Prisma schema but has been renamed topreviewFeatures
for a long time now. If you’re still using this property, you can either manually rename it topreviewFeatures
or use the VS Code action to rename it if you’re using the latest version of the Prisma VS Code extension.Renamed
migration-engine
toschema-engine
In this release, we renamed the
migration-engine
, responsible for running introspection and migration commands, toschema-engine
. For the majority of our users, no changes will be required. However, if you explicitly include or exclude the engine files you will need to update your code references. Refer to the upgrade guide for more information.Fixes and improvements
Prisma Client
create
call<Model>RelationFilterInput
does not take nullability into accountOR
broke after opting in tojsonProtocol
feature.jsonProtocol
)jsonProtocol
GAbinaries.prisma.sh/all_commits/
rejectOnNotFound
runtime/index.js
bundle from clientprisma dev
commandphotonResolver
andprovider=photonjs
handlingfieldReference
GAextendedWhereUnique
GAprisma2
"executable"$extend
in factory function whencompilerOptions.composite
istrue
query
type tonever
The package "path" wasn't found on the file system but is built into node
undefined
explicitly passed toselect
/include
Prisma Migrate
provider = "postgresql"
an errorexperimentalFeatures
generator propertydb pull
: Remove the version checker from introspectiondoctor
commandexperimentalFeatures
generator propertyexperimentalFeatures
Language tools (e.g. VS Code)
experimentalFeatures
as obsoleteCredits
Huge thanks to @michaelpoellath, @RobertCraigie, @Coder246, @RDIL, @oohwooh, @rqres, @zhiyan114, @spudly, @hayes, @boennemann, @DongGunYoon for helping!
📺 Join us for another "What's new in Prisma" live stream
Learn about the latest release and other news from the Prisma community by joining us for another "What's new in Prisma" live stream.
The stream takes place on YouTube on Thursday, July 13 at 5 pm Berlin | 8 am San Francisco.
Configuration
📅 Schedule: Branch creation - "before 12pm on Sunday" (UTC), 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.