chore(deps): update prisma to v6 (major)#2628
Merged
renovate[bot] merged 3 commits intomainfrom Apr 9, 2025
Merged
Conversation
7a9016c to
dbc7f54
Compare
2548c1b to
728c7f4
Compare
7ac680e to
3b00ca9
Compare
464a40f to
57fcca9
Compare
57fcca9 to
b0bd734
Compare
caba52b to
4e56e0a
Compare
4e56e0a to
b5ddb66
Compare
Contributor
Author
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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:
5.22.0->6.6.05.22.0->6.6.0Release Notes
prisma/prisma (@prisma/client)
v6.6.0Compare Source
Today, we are excited to share the
6.6.0stable release 🎉 This version comes packed with exciting features, we can't wait to see what you're going to build with it!🌟 Help us spread the word about Prisma by starring the repo ☝️ or posting on X about the release.
Highlights
ESM support with more flexible
prisma-clientgenerator (Early Access)We are excited to introduce a new
prisma-clientgenerator that's more flexible, comes with ESM support and removes any magic behaviours that may cause friction with the currentprisma-client-jsgenerator.Here are the main differences:
outputpath; no “magic” generation intonode_modulesany moremoduleFormatfieldHere's how you can use the new
prisma-clientgenerator in your Prisma schema:In your application, you can then import the
PrismaClientconstructor (and anything else) from the generated folder:outputpath to.gitignoreso that the query engine that's part of the generated Prisma Client is kept out of version control:##### .gitignore ./src/generated/prisma📚 Learn more in the docs.
Cloudflare D1 & Turso/LibSQL migrations (Early Access)
Cloudflare D1 and Turso are popular database providers that are both based on SQLite. While you can query them using the respective driver adapter for D1 or Turso, previous versions of Prisma ORM weren't able to make schema changes against these databases.
With today's release, we're sharing the first Early Access version of native D1 migration support for the following commands:
prisma db push: Updates the schema of the remote database based on your Prisma schemaprisma db pull: Introspects the schema of the remote database and updates your local Prisma schemaprisma migrate diff: Outputs the difference between the schema of the remote database and your local Prisma schemaTo use these commands, you need to connect the Prisma CLI to your D1 or Turso instance by using the driver adapter in your
prisma.config.tsfile. Here is an example for D1:With that setup, you can now execute schema changes against your D1 instance by running:
📚 Learn more in the docs:
MCP server to manage Prisma Postgres via LLMs (Preview)
Prisma Postgres is the first serverless database without cold starts. Designed for optimal efficiency and high performance, it's the perfect database to be used alongside AI tools like Cursor, Windsurf, Lovable or co.dev. In this ORM release, we're adding a command to start a Prisma MCP server that you can integrate in your AI development environment. Thanks to that MCP server, you can now:
… and much more.
To get started, add this snippet to the MCP configuration of your favorite AI tool and get started:
{ "mcpServers": { "Prisma": { "command": "npx", "args": ["-y", "prisma", "mcp"] } } }📚 Learn more in the docs.
New
--promptoption onprisma initYou can now pass a
--promptoption to theprisma initcommand to have it scaffold a Prisma schema for you and deploy it to a fresh Prisma Postgres instance:For everyone, following social media trends, we also created an alias called
--vibefor you 😉Improved API for using driver adapters
In this release, we are introducing a nice DX improvement for driver adapters. Driver adapters let you access your database using JS-native drivers with Prisma ORM.
Before 6.6.0
Earlier versions of Prisma ORM required you to first instantiate the driver itself, and then use that instance to create the Prisma driver adapter. Here is an example using the
@libsql/clientdriver for LibSQL:6.6.0 and later
As of this release, you instantiate the driver adapter directly with the options of your preferred JS-native driver.:
No more Bun issues if Node.js is not installed
Bun users reported an issue that
prisma generatewould hang if Node.js installed on their machine. This is now fixed and Bun users can generate Prisma Client without issues.Company news
Enterprise support
Prisma offers an enterprise support plan for Prisma ORM. Get direct help from our team and a joint slack channel! With Prisma ORM 7 on the horizon, this is a great time to upgrade your support today.
We are hiring: Developer Support Engineer
If you care about making developers successful, join us as a Developer Support Engineer.
v6.5.0Compare Source
Today, we are excited to share the
6.5.0stable release 🎉🌟 Help us spread the word about Prisma by starring the repo ☝️ or tweeting about the release. 🌟
Highlights
Databases can only be reset manually and explicitly
In previous versions, if Prisma ORM determined that a
migratecommand could not be applied cleanly to the underlying database, you would get a message like this one:While "no" was the default, we've determined that having this prompt in the first place was a mistake. In this version we're removing the prompt entirely and instead exiting with an appropriate error message.
To get the previous behavior, you will need to run
prisma migrate resetdirectly.Support for
prisma.config.tsin Prisma StudioWe've expanded support for our
prisma.config.tsfile to include Prisma Studio!To use the new config file, including the ability to connect to driver adapter enabled databases with Prisma Studio, add a
studioblock to yourprisma.config.tsfile:Notice how this looks a little different from last release! Instead of an
@prisma/configpackage there’s now two different options:defineConfighelper exported byprisma/config.PrismaConfigutility type exported byPrisma.All the relevant info for the
prisma.config.tsfile, including these new ways of defining your config, can be found in our docs.Allow for chaining
$onand$extends.In previous versions of Prisma ORM, the return type of the
$onclient method wasvoid. This did not allow for chaining$on()and$extends()calls, as$onis not available on extended clients.In this version we've resolved this issue and
$onwill now return the modified Prisma Client.Community fixes
We have a number of community-submitted fixes that improve Prisma ORM:
Prisma is hiring
Join us at Prisma and work on our TypeScript ORM (now faster than ever) and our Cloud products like Prisma Postgres (now in GA!)
We currently have two open roles in our Engineering team:
If these don’t fit, you can still check out our jobs page and send a general application.
Enterprise support
Prisma offers an enterprise support plan for Prisma ORM. Get direct help from our team and a joint slack channel! With Prisma ORM 7 on the horizon this is a great time to upgrade your support today.
Credits
Thank you to @overbit, @RaHehl, @toniopelo, and @de-novo for your contributions to this release!
v6.4.1Compare Source
Today, we are issuing the 6.4.1 patch release. It fixes a few issues with the NPS survey and makes it respect the
--no-hintsCLI flag.Fixes
Prisma CLI
v6.4.0Compare Source
Today, we are excited to share the
6.4.0stable release 🎉🌟 Help us spread the word about Prisma by starring the repo ☝️ or tweeting about the release. 🌟
Highlights
TypeScript-based configuration with
prisma.config.ts(Early Access)In this release, we're introducing an Early Access version of a TypeScript-based configuration file for Prisma ORM:
prisma.config.ts.This file will serve as a central configuration point for Prisma ORM:
With this file you are able to run any arbitrary code needed to get values required by Prisma ORM, such as database URLs from a secret store or fine-grained control of settings. It needs to live in the current working directory from where you're executing Prisma CLI commands (typically, the root of your project).
Learn more about the new
prisma.config.tsfile in the docs.Case-insensitive mode in JSON filters
You can now do case-insensitive filtering on JSON data.
Just use the new
modeoption when filtering usingstring_contains,string_starts_withorstring_ends_within a JSON object and set it to"insensitive":The above query returns all users where the
favorites.catBreedvalue contains"Van"or"van".Thanks to @lubosmato who implemented this feature 🎉
Improved CockroachDB migration speed
In this release we found some inefficiencies in our migration engine that was impacting CockroachDB migrations. In 6.4.0, CockroachDB migrations should be significantly faster.
Calling all devs: Give us your feedback!
Prisma ORM's community keeps us going. To make sure that we're focused on what the community needs, we would like to get your feedback via our online feedback form.
Credits
Huge thanks to @lubosmato, @notomo, @Mayureshd-18, @mydea, @omar-dulaimi and @Hazmi35 for helping out with this release!
v6.3.1Compare Source
This patch releases introduces improvements to the
prisma initoutput when invoked to with the--dboption.Run
npx prisma@latest init --dbto get an instant Prisma Postgres database.v6.3.0Compare Source
Today, we are excited to share the
6.3.0stable release 🎉🌟 Help us spread the word about Prisma by starring the repo ☝️ or tweeting about the release. 🌟
Highlights
A brand new Prisma Studio
In this release we've included several great improvements to Prisma Studio's developer experience. You can learn all about the changes we've made in our release blog post, but here's a short list:
Prisma Studio is back in the Console
Fans of Prisma Data Browser rejoice! The new Prisma Studio is now in the Prisma Console and is available for all PostgreSQL and MySQL databases.
A new model viewer
Previously, switching from model to model in Prisma Studio would require backing all the way out to the model view, then digging in again. With our new UI, it's easy to switch from model to model while keeping your place.
A new editing experience
If you're trying to edit a given field in a model, Prisma Studio made it quite easy. However, if you're trying to edit every field in a given row, it could get quite annoying to keep scrolling left to right. Our new edit sidebar resolves that with the ability to edit all fields for a given row at once.
Clean up at the click of a button
When editing a number of models, it can get difficult to get back to a clean slate. In the new Prisma Studio, we've added a "Close all" button that puts you back to a fresh start.
Add
limittoupdateMany()anddeleteMany()Previously,
limithas not existed as a valid option in top levelupdateMany()anddeleteMany()queries. In 6.3.0limitis now available in these queries, bringing their features more in line with other query types.You can use
limitlike the following:This will limit the number of deleted users to 100 at maximum.
Sort
generatorfields deterministicallyIn previous version of Prisma ORM, the fields inside of a
generatorblock in your Prisma Schema were not deterministically sorted. This could lead to cases whereprisma db pullcould lead to re-ordering of fields.In 6.3.0, the sorting of fields in this block is now deterministic. You may see re-ordering on the first
prisma db pullafter you upgrade, but it will remain consistent afterwards.Replace
NOT INwithNOT EXISTSfor PostgreSQL relation filtersIn previous versions of Prisma ORM, when using the
noneorsomerelation filters, the SQL queries generated usedNOT IN. In many cases this lead to performance issues as the size of the related table grew. In 6.3.0, we’ve replaced these usages ofINwithEXISTSin order to improve query performance.A special thank you
We'd like to extend our heartfelt thanks to @loren and his team for the collaboration and trust in our enterprise support plan. Working closely with them allowed us to address important issues like #19249 and #17303. Their insights and partnership have been invaluable in improving our product.
If your team could benefit from dedicated support and tailored solutions, learn more about our enterprise support plan.
Fixes and improvements
Prisma Client
takeorlimittoupdateMany()&deleteMany()Prisma
prisma db pullnon-deterministically sorts generator fieldsno entry found for keyerror on views<->model relationsonUpdatedata to the DMMF in@prisma/generator-helperCredits
Huge thanks to @WhyAsh5114 for their contributions to this release!
v6.2.1Compare Source
Today we are releasing the 6.2.1 patch release to address an issue with some of the
omitApipreview feature checks having been accidentally omitted when making the feature GA. Now it is fully functional without the preview feature flag.Changes
v6.2.0Compare Source
Today we're releasing Prisma ORM version 6.2.0 🎉
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
We have a number of new features in this version, including support for
jsonandenumfields in SQLite, a newupdateManyAndReturnfunction, support for ULID values, as well as the promotion of theomitfeature from Preview to Generally Availability.Highlights
Excluding fields via
omitis now production-readyOur number one requested feature is out of Preview and Generally Available. In 6.2.0, you no longer need to add
omitApito your list of Preview features:generator client { provider = "prisma-client-js" - previewFeatures = ["omitApi"] }As a refresher:
omitallows you to exclude certain fields from being returned in the results of your Prisma Client queries.You can either do this locally, on a per-query level:
Or globally, to ensure a field is excluded from all queries of a certain model:
For more information on
omit, be sure to check our documentation.jsonandenumfields in SQLitePrevious to this version, you could not define
jsonandenumfields in your Prisma schema when using SQLite. The respective GitHub issues have been among the most popular ones in our repo, so with our new approach to open-source governance, we finally got to work and implemented these.Working with JSON and Enum fields works similarly to other database providers, here’s an example:
Support for auto-generated ULID values
Similar to
cuid2support released in ORM version 6.0.0, we are now adding support for Universally Unique Lexicographically Sortable Identifiers (or short: ULIDs 😄) in version 6.2.0. A ULID value is a 26-character alphanumeric string, e.g.01GZ0GZ3XARH8ZP44A7TQ2W4ZD.With this new feature, you can now create records with auto-generated ULID values for
Stringfields:New batch function:
updateManyAndReturnupdateManyallows you to update many records in your database, but it only returns the count of the affected rows, not the resulting rows themselves. WithupdateManyAndReturnyou are now able to achieve this:This call to
updateManyAndReturnwill now return the actual records that have been updated in the query:Please note that like
createManyAndReturn,updateManyAndReturnis only supported in PostgreSQL, CockroachDB, and SQLite.Fixed runtime error in Node.js v23
While not officially supported, we understand that a lot of you like to be on the latest Node.js version — so we fixed an error that only occurred on Node.js 23. Happy coding ✌️
Prisma is hiring 🤝
Join us at Prisma to work on the most popular TypeScript ORM and other exciting products like the first serverless database built on unikernels!
We currently have two open roles in our Engineering team:
If these don’t fit, you can still check out our jobs page and send a general application.
v6.1.0Compare Source
Today we're releasing Prisma ORM version 6.1.0
In this version our
tracingPreview feature is being graduated to GA!Highlights
Tracing goes GA
The
tracingPreview feature is now stable. You now no longer have to includetracingin your set of enabled preview features.generator client { provider = "prisma-client-js" - previewFeatures = ["tracing"] }We have also changed some of the spans generated by Prisma Client. Previously, a trace would report the following spans:
Now, the following are reported:
Additionally, we have made a few changes to our dependencies:
@opentelemetry/apiis now a peer dependency instead of a regular dependencyregisterInstrumentationsin@opentelemetry/instrumentationis now re-exported by@prisma/instrumentationAfter upgrading to Prisma ORM 6.1.0 you will need to add
@opentelemetry/apito your dependencies if you haven't already:You will also no longer need to have
@opentelemetry/instrumentationif you only useregisterInstrumentations. In this case you can importregisterInstrumentationsfrom@prisma/instrumentationMutli-line comments in Prisma Schema Language (PSL)
Comments can now be defined as multi-line in your Prisma schema! Comments can use the existing format:
// this is a schema commentor can now also use our multi-line format:
Bug fixes
Tracing related
As we're moving our
tracingpreview to GA, a number of issues have been resolved. Here are a few highlights:suppressTracingOther issues
We also have a number of other issues that were resolved outside of our
tracingfeature.PrismaNeonHTTPadapterfindUniquereturnsnullwhen used instead ofPromise.allFixes and improvements
Prisma
TypeError: parentTracer.getSpanLimits is not a functionSpanconstructorprisma:enginespans do not respectsuppressTracing()tracing: enginespans don't pass throughSamplerprisma:client:operationprisma:enginespans are missing when there are multiplenew PrismaClient()invocationsparentTracer.getSpanLimits is not a functionopentelemetry-sdk-trace-base(e.g. Datadog tracer)traceparentcomments with multiple SQL statements@prisma/instrumentationdependencies peer dependenciesdb.statementattribute doesn't include thetraceparentcommentregisterInstrumentationsuses the global provider instead of the one passed inPrismaNeonHTTPadapter breaks on some types e.g. timestampPrisma failed to detect the libssl/openssl version to usePrisma Client
@prisma/instrumentationType Error:'InstrumentionNodeModuleDefintion' is not genericv6.0.1Compare Source
Today we are releasing the
6.0.1patch release to address an issue with using Prisma Client generated in a custom output path with Next.js.Changes
"type": "commonjs"addition in generatedpackage.jsonv6.0.0Compare Source
We’re excited to share the Prisma ORM v6 release today 🎉
As this is a major release, it includes a few breaking changes that may affect your application. Before upgrading, we recommend that you check out our upgrade guide to understand the impact on your application.
If you want to have an overview of what we accomplished since v5, check out our announcement blog post: Prisma 6: Better Performance, More Flexibility & Type-Safe SQL.
🌟 Help us spread the word about Prisma by starring the repo ☝️ or posting on X about the release.
Breaking changes
Minimum supported Node.js versions
The new minimum supported Node.js versions for Prisma ORM v6 are:
There is no official support for Node.js <18.18.0, 19, 21, 23.
Minimum supported TypeScript version
The new minimum supported TypeScript version for Prisma ORM v6 is: 5.1.0.
Schema change for implicit m-n relations on PostgreSQL
If you're using PostgreSQL and are defining implicit many-to-many relations in your Prisma schema, Prisma ORM maintains the relation table for you under the hood. This relation table has
AandBcolumns to represent the tables of the models that are part of this relation.Previous versions of Prisma ORM used to create a unique index on these two columns. In Prisma v6, this unique index is changing to a primary key in order to simplify for the default replica identity behaviour.
If you're defining implicit m-n relations in your Prisma schema, the next migration you'll create will contain
ALTER TABLEstatements for all the relation tables that belong to these relations.Full-text search on PostgreSQL
The
fullTextSearchPreview feature is promoted to General Availability only for MySQL. This means that if you're using PostgreSQL and currently make use of this Preview feature, you now need to use the newfullTextSearchPostgresPreview feature.Usage of
BufferPrisma v6 replaces the usage of
BufferwithUint8Arrayto represent fields of typeBytes. Make sure to replace all your occurrences of theBuffertype with the newUint8Array.Removed
NotFoundErrorIn Prisma v6, we removed the
NotFoundErrorin favor ofPrismaClientKnownRequestErrorwith error codeP2025infindUniqueOrThrow()andfindFirstOrThrow(). If you've relied on catchingNotFoundErrorinstances in your code, you need to adjust the code accordingly.New keywords that can't be used as model names:
async,await,usingWith this release, you can't use
async,awaitandusingas model names any more.Preview features promoted to General Availability
In this release, we are promoting a number of Preview features to General Availability.
fullTextIndexIf you use the full-text index feature in your app, you can now remove
fullTextIndexfrom thepreviewFeaturesin your Prisma schema:generator client { provider = "prisma-client-js" - previewFeatures = ["fullTextIndex"] }fullTextSearchIf you use the full-text search feature with MySQL in your app, you can now remove
fullTextSearchfrom thepreviewFeaturesin your Prisma schema:generator client { provider = "prisma-client-js" - previewFeatures = ["fullTextSearch"] }If you are using it with PostgreSQL, you need to update the name of the feature flag to
fullTextSearchPostgres:generator client { provider = "prisma-client-js" - previewFeatures = ["fullTextSearch"] + previewFeatures = ["fullTextSearchPostgres"] }New features
We are also releasing new features with this release:
prisma generate's outputCompany news
🚀 Prisma Postgres is free during Early Access
In case you missed it: We recently launched Prisma Postgres, a serverless database with zero cold starts, a generous free tier, connection pooling, real-time events, and a lot more! It’s entirely free during the Early Access phase, try it now!
✨ Let us know what you think of Prisma ORM
We're always trying to improve! If you've recently used Prisma ORM, we'd appreciate hearing your thoughts about your experience via this 2min survey.
Configuration
📅 Schedule: Branch creation - "on the 2nd through 5th day of the month" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.