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:
^3.7.0
->^3.15.2
Release Notes
prisma/prisma (prisma)
v3.15.2
Compare Source
Today, we are issuing the
3.15.2
patch release.Fixes
In order to use the Prisma Data Proxy via Prisma Client, you need to generate it with
prisma generate --data-proxy
as described in our documentation. We are introducingPRISMA_GENERATE_DATAPROXY="true"
as an additional way to do the same thing, but via an environment variable.This is necessary, for example, to reliably deploy a Prisma Client for Data Proxy on Vercel Serverless Functions, where it can be hard to update the build command to run
prisma generate --data-proxy
. Starting with this version you can just setPRISMA_GENERATE_DATAPROXY="true"
as an environment variable the Vercel project settings.If you are unfamiliar with the Data Proxy, read how to get started.
v3.15.1
Compare Source
Today, we are issuing the
3.15.1
patch release.Fixes
v3.15.0
Compare Source
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Major improvements
Improvements to Prisma Client for Data Proxy
In this release, we're shipping a couple of improvements to Prisma Client for Data Proxy.
The Prisma Data Proxy provides connection management and pooling for database connections for efficiently scaling database connections in serverless environments. The Prisma Client for Data Proxy provides support for connecting to the Prisma Data Proxy using HTTP.
We introduced this feature in version
3.3.0
and constantly shipped features, fixes, and improvements.One of the changes in this release is improving the Prisma Client for the Data Proxy generation step.
datasource db { provider = "postgresql" url = env("DATABASE_URL") } generator client { provider = "prisma-client-js" - previewFeatures = ["dataProxy"] }
You can generate Prisma Client for the Data Proxy it by using the
--data-proxy
flag:We also updated how you can run Prisma Client using the Data Proxy in Cloudflare Workers and Edge environments. You can now use
@prisma/client/edge
instead of@prisma/client
in your application.To learn more, check out our documentation.
Prisma Client Metrics is now in Preview
Metrics is a new Preview feature that allows you to monitor how Prisma Client interacts with your database. Metrics expose a set of counters, gauges, and histograms that can be labeled and piped into an external monitoring system like Prometheus or StatsD.
You can use metrics in your project to help diagnose how your application's number of idle and active connections changes with counters, gauges, and histograms.
To get started using metrics in your project, enable the Preview feature flag in your Prisma schema:
You can then get started using metrics in your project:
To learn more, check out the metrics documentation. Give it a try and let us know what you think.
Regression
Azure SQL on MacOS
This release includes a known regression when connecting to Azure SQL from MacOS only and will be resolved soon. Follow this issue for updates and resolution.
Fixes and improvements
migrate reset
returns with a non-0 exit code if the seed script returns with a non-0 exit codeThis will help user scripts know more about the success of the command, but might break existing scripts.
Prisma
introspect --url
throws error if existing schema file only containsgenerator
prisma migrate reset
always exits with0
, needs to exit with1
on errorsWould you like to create a Github issue? » Yes
does nothing in terminal on Windows患者ID
AirbyteRawYuriPagesAirbyteDataProperties推荐点RichText
db
andmigrate
commandsPrisma Client
Option::unwrap()
on aNone
value in query-engine/core/src/query_document/parser.rs:250:87upsert
causes: "PANIC: calledOption::unwrap()
on aNone
value in query-engine/core/src/query_document/parser.rs:250:87".env
filesOption::unwrap()
on aNone
value in query-engine\core\src\query_document\parser.rs:250:87prisma generate
errors withError: Error: ENOENT: no such file or directory, open '/[...]/prisma/schema.prisma'
when using a custom name for the Prisma schema fileOption::unwrap()
on aNone
value in query-engine/core/src/query_document/parser.rs:250:87Option::unwrap()
on aNone
value in query-engine/core/src/query_document/parser.rs:250:87TypeError: at normalizeAndValidateHeaderValue
with data proxy in cloudflare workers/miniflareOption::unwrap()
on aNone
value in query-engine/core/src/query_document/parser.rs:250:87getConfig
andgetDmmf
of Query EngineOption::unwrap()
on aNone
value in query-engine/core/src/query_document/parser.rs:250:87Option::unwrap()
on aNone
value in query-engine/core/src/query_document/parser.rs:250:87Option::unwrap()
on aNone
value in query-engine/core/src/query_document/parser.rs:250:87InvalidDatasourceError
of Data Proxy Client outputs a code snippetCredits
Huge thanks to @shian15810, @zifeo, @ever0de, @rushabhhere for helping!
Prisma Day
Prisma Day is back this year, and it'll be on June 15 - 16 at the James June Sommergarten in Berlin. Join us in-person or online for talks and workshops on modern application development and databases. Come and meet and chat with the team behind the Prisma ORM and Prisma Data Platform.
💼 We're hiring!
If you're interested in joining our growing team to help empower developers to build data-intensive applications, Prisma is the place for you.
We're looking for a Technical Support Engineer and Back-end Engineer: Prisma Data Platform.
Feel free to read through the job descriptions and apply using the links provided.
📺 Join us for another "What's new in Prisma" livestream
Learn about the latest release and other news from the Prisma community by joining us for another "What's new in Prisma" livestream.
The stream takes place on YouTube on Thursday, June 9 at 5 pm Berlin | 8 am San Francisco.
v3.14.0
Compare Source
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Major improvements
CockroachDB connector is now Generally Available!
We are proud to announce the CockroachDB connector is now stable and Generally Available. The connector was built in joined efforts with the team at Cockroach Labs and comes with full Prisma Client and Prisma Migrate support.
If you're upgrading from Prisma version
3.9.0
+ or the PostgreSQL connector, you can now runnpx prisma db pull
and review the changes to your schema. To learn more about CockroachDB-specific native types we support, refer to our docs.To learn more about the connector and how it differs from PostgreSQL, head to our documentation.
PostgreSQL
GIN
,GiST
,SP-GiST
, andBRIN
indexes support (Preview)We introduced the
extendedIndexes
Preview feature in version3.5.0
, and we have been adding new configuration options for indexes. We've expanded index type support with theGIN
,GiST
,SP-GiST
, andBRIN
indexes in this release.To make use of an index type, you can update your Prisma schema by providing the
type
argument to the@@​index
attribute:The following SQL will be generated in your migration when you run
prisma migrate dev
:To learn more about configuring index types in your schema, refer to our documentation.
Improved
queryRaw
APIIn this release, we made improvements to the SQL raw API. Some improvements are breaking and will be available behind the new
improvedQueryRaw
Preview feature flag.The
improvedQueryRaw
Preview feature solves most of the issues faced when working with the raw API. We would encourage you to turn on the Preview feature flag, try out the new API, and let us know how we can make it even better.You can enable the Preview feature in your Prisma schema as follows:
Here's a list of the improvements
improvedQueryRaw
comes with:1. Raw scalar values are deserialized as their correct JavaScript types
Prisma Client queries such as
findMany
deserialize database scalar values to their corresponding JavaScript types. For example, aDateTime
value is deserialized as a JavaScriptDate,
and aBytes
would be deserialized as a JavaScriptBuffer
.Raw queries now implement the same behavior when the
improvedQueryRaw
Preview feature flag is enabled.The types of values from the database will be used instead of the types in the Prisma schema. Here's an example query and response:
Here's a table that recaps the serialization type-mapping for raw results:
2. PostgreSQL type-casts
We've also fixed a lot of PostgreSQL type-casts that were broken by enabling the
improvedQueryRaw
Preview feature flag.Here's an example of a query that used to fail:
You can now perform some more type-casts in your queries:
A consequence of this fix is that some subtle implicit casts are now handled more strictly and would fail. Here's an example that used to work but won't work anymore under the
improvedQueryRaw
feature flag:The
LENGTH
PostgreSQL function only accepttext
as input. Prisma used to coerce42
totext
silently, but won’t anymore. As suggested by the hint, cast42
totext
as follows:3. Query parameters are correctly sent to the database
Before this release, query parameters of type
BigInt
,Bytes
, andDecimal
were incorrectly sent to the database leading to instances of unexpected inserts. Passing the types as query parameters now works:Fixes and improvements
Prisma Client
incorrect binary data format in bind parameter 3
$queryRaw
generate
output withoutput
has weird package path on Windows$
fromexecuteRaw
in error message "Invalid `prisma.executeRaw()` invocation:"Result::unwrap()
on anErr
value: Any { .. } in query-engine/connectors/sql-query-connector/src/error.rs:58:51referentialIntegrity = prisma
: Broken query ononUpdate: Cascade
|symbol ... not found
|The column ... does not exist in the current database.
N/A
. Message:error deserializing column 0: a Postgres value was
NULL``" error when using Postgres ARRAY_AGG with a nullable columndebugPanic
like functionality forgetConfig
andgetDmmf
of Query EngineResult::unwrap()
on anErr
value: Any { .. } in query-engine/connectors/sql-query-connector/src/error.rs:58:51Prisma
Result::unwrap()
on anErr
value: Custom { kind: InvalidData, error: "stream did not contain valid UTF-8" }prisma format
panics when you use a colon to declare field type (field: Type
syntax)TEXT
orBLOB
in MySQL @id/@index/@uniqueError parsing attribute "@​id"
but it's actually about@@​id
Option::unwrap()
on aNone
valueprovider=posgresql
schema--url
fordb pull
ignored/overwritesprovider=cockroachdb
Prisma Migrate
Language tools (e.g. VS Code)
Credits
Huge thanks to @ever0de, @flatplate, @njmaeff, @tnzk, @DePasqualeOrg for helping!
Prisma Day
Prisma Day is back this year, and it'll be on June 15 - 16 at the JamesJune Sommergarten in Berlin. Join us in-person or online for talks and workshops on modern application development and databases. Come and meet and chat with the team behind the Prisma ORM and Prisma Data Platform.
💼 We're hiring!
If you're interested in joining our growing team to help empower developers to build data-intensive applications, Prisma is the place for you.
We're hiring for a number of roles: Technical Support Engineer, Back-end Engineer: Prisma Data Platform, and a Developer Advocate(Frontend/ Fullstack). You can find more jobs we're hiring for on our jobs page.
Feel free to read through the job descriptions and apply using the links provided.
📺 Join us for another "What's new in Prisma" livestream
Learn about the latest release and other news from the Prisma community by joining us for another "What's new in Prisma" livestream.
The stream takes place on YouTube on Thursday, May 12 at 5 pm Berlin | 8 am San Francisco.
v3.13.0
Compare Source
Today, we are excited to share the
3.13.0
stable release 🎉🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Major improvements
migrate diff
anddb execute
are now Generally Available!We released two new Preview CLI commands in version
3.9.0
–prisma migrate diff
andprisma db execute
– to enable our users to create and understand migrations and build their workflows using the commands.We're proud to announce that the commands are now Generally Available and can now be used without the
--preview-feature
flag. 🎉The
prisma migrate diff
command creates a diff of your database schema, Prisma schema file, or the migration history. All you have to do is feed the command with a schemafrom
state and a schemato
state to get an SQL script or human-readable diff.In addition to
prisma migrate diff
,prisma db execute
is used to execute SQL scripts against a database. You can directly executeprisma migrate diff
's output usingprisma db execute --stdin
.Both commands are non-interactive, so it's possible to build many new workflows such as forward and backward migrations with some automation tooling. Take a look at our documentation to learn some of the popular workflows these commands unlock:
migrate diff
anddb execute
Let us know what tools, automation, and scripts you build using these commands.
SQL Server index clustering (Preview)
In version
3.5.0
, we introduced theextendedIndexes
Preview feature which we have constantly been adding new configuration options for indexes. In this release, we added support for enabling or disabling index/constraint clustering in SQL Server.By default, indexes will be clustered by default. You can update this in your schema as follows to disable index clustering:
The following SQL will be generated in your migration when you run
prisma migrate dev
If you've enabled the
extendedIndexes
Preview feature, this is potentially a breaking change. Refer to our documentation to learn how you can upgrade from a previous version.Updated native types for CockroachDB (Preview)
We have revamped the native types available in the CockroachDB connector. We initially re-used the PostgreSQL native types because they were close enough, but we have now adapted our list of the supported native types to match what CockroachDB supports.
If you are already using CockroachDB in your project, you can run
prisma db pull
to update all the native types in your Prisma schema. Refer to our documentation for the complete list of all CockroachDB native types.OpenSSL 3.0 Support
We're excited to announce that version
3.13.0
now supports OpenSSL 3.0. Operating systems such as Ubuntu 22.04 default to OpenSSL 3.0, and when runningprisma generate
, you would run into the following error:If you've run into a similar error, bump up to the latest Prisma version and give it another try!
Fixes and improvements
Prisma Client
Prisma
prisma init
needs CockroachDB in the providers listDROP DATABASE "test-doesnotexists;"
says thatDatabase postgres.public does not exist
migrate diff
just crashed.prisma init --datasource-provider=cockroachdb --url ...
sets provider topostgresql
--preview-feature
flag for Primitives (migrate diff
anddb execute
)Language tools (e.g. VS Code)
Prisma Engines
Credits
Huge thanks to @ever0de, @jacobhq, @dkantereivin, @CommanderRoot for helping!
💼 We're hiring!
If you're interested in joining our growing team to help empower developers to build data-intensive applications, Prisma is the place for you.
We're looking for a Technical Support Engineer and Senior Software Engineer (Prisma Data Platform).
Feel free to read through the job descriptions and apply using the links provided.
📺 Join us for another "What's new in Prisma" livestream
Learn about the latest release and other news from the Prisma community by joining us for another "What's new in Prisma" livestream.
The stream takes place on YouTube on Thursday, April 28 at 5 pm Berlin | 8 am San Francisco.
v3.12.0
Compare Source
Today, we are excited to share the
3.12.0
stable release 🎉🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Major improvements and new features
MongoDB is now Generally Available
If you’ve been using MongoDB since it was in Preview, we'd like to say: Thank you! Your testing and feedback has been essential during the preview phase, and our MongoDB support is much better because of it.
Today we’re proud to announce that MongoDB is now stable and production-ready. After upgrading to
3.12.0
, you can remove the MongoDB preview flag in your schema:datasource db { provider = "mongodb" url = env("DATABASE_URL") } generator client { provider = "prisma-client-js" - previewFeatures = ["mongoDb"] }
We’ve been working hard towards this day ever since we launched MongoDB in Preview in July 2021.
Here are some of the feature highlights we developed over this period:
db push
You can learn about these features in the release blog post, and more, in our freshly brewed MongoDB Guide. For newcomers to Prisma with MongoDB, we recommend you check out our Getting Started Guide.
To celebrate this milestone, we invite you to join Prisma’s MongoDB Launch Week starting on April 25th. Enjoy a jam-packed week of exclusive workshops with plenty of opportunities to win free MongoDB Atlas credits and swag. It’s free to sign-up and available anywhere you have an internet connection.
🚨 Please be aware that we made a few breaking changes to tie up loose ends before General Availability:
@db.Array
replaced with@db.ObjectId
We made some changes in the
3.11.1
patch release in case you missed it.Index support on composite type fields
We also added support for adding indexes on embedded document fields in MongoDB. This means that you can now define a normal, unique, or full-text index in your schema.
Improved Connection Pooling Resiliency
In
3.12.0
, we busted a ghost that has been bugging teams since the early days of the Prisma ORM. Under certain amounts of load, some people reported that the connection pool would sometimes drop connections or deadlock and not recover.After many sightings and a lot of head-scratching, we were finally able to reproduce the issue. This allowed us to narrow down the problem to one of our dependencies and fix the problem.
To read the nitty gritty details of the problem and our solution, check out this issue.
Fixes and improvements
Prisma Client
new PrismaClient()
can not findschema.prisma
file when use with pnpm workspaceInconsistent column data: Malformed ObjectID
by including the field(s) in the messageInconsistent column data: Failed to convert ...
error on invalid data in properties does not mention affected field (and other useful information)QueryEvent
typeparams
isundefined
Prisma
Option::unwrap()
on aNone
valueOption::unwrap()
on aNone
valueprisma db push
on MongoDB with@unique
idOption::unwrap()
on aNone
valueOption::unwrap()
on aNone
valuemigrate diff
correctly resolve relative SQLite file path from schema?Int32
=>Int
)Prisma Migrate
Language tools (e.g. VS Code)
prisma-fmt
panic when@db.Array()
is added in a MongoDB schemareferences
Array()
is still auto suggestedPrisma Engines
updateMany
write operationdeleteMany
write operationCredits
Huge thanks to @ever0de, @chronotc, @hayes, @maddhruv, @jasimon, @codesee-maps[bot], @andyrichardson, @xnerhu, @Josh-a-e, @dusandz for helping!
💼 We're hiring!
If you're interested in joining our growing team to help empower developers build data-intensive applications, Prisma is the place for you.
We're looking for a Developer Success Engineer and Back-end Engineer: Prisma Data Platform.
Feel free to read through the job descriptions and apply using the links provided.
📺 Join us for another "What's new in Prisma" livestream
Learn about the latest release and other news from the Prisma community by joining us for another "What's new in Prisma" livestream.
The stream takes place on YouTube on Thursday, April 7 at 5 pm Berlin | 8 am San Francisco.
v3.11.1
Compare Source
Today, we are issuing the
3.11.1
patch release.MongoDB (Preview)
Breaking: Filters no longer return
undefined
fields by defaultIn
3.11.1
, we've changed what data is returned when filtering MongoDB documents onundefined
fields. The new rule is thatundefined
fields are excluded by default unless explicitly filtered for. This allows you to query for undefined and null values separately.Let's take a look at a concrete example. Given the following Prisma schema:
For Mongo, optional fields can either be
null
orundefined
(absent). The following documents are all valid for the schema above:Prior to
3.11.1
, if you queried forwhere: { street: null }
, you'd get_id: 2
and_id: 3
. In3.11.1
, you'll only get_id: 2
. The ability to also query for the missing fields has also been added. For details, refer to the newisSet
below to learn more.There are a few exceptions to this new default:
having
filter on an aggregated field will returnundefined
fields. This is because aggregation on undefined fields yieldsnull
, notundefined
, thus matching the filter.undefined
) will currently include those relations in the result set.New
isSet
filter operationTo compensate for missing fields on documents no longer being returned by the filters above, we’ve added a new
isSet: bool
filter. This filter can be used to include fields that areundefined
on documents.Using the example above, to include the
undefined
fields, you can use anOR
:The
isSet
operation has been added to all scalar and embedded fields that are optional.New
unset
operationIn
3.11.1
, you can also remove a field with theunset
operation.Using the example above, let's write a query to remove the street field:
This effectively sets the
street
field toundefined
in the database.New
updateMany
operationWe now support updating embedded documents that match specific criteria.
For example, given the following schema:
Let's update the photo with a
url
of1.jpg
to2.png
:New
deleteMany
operationSimilar to
updateMany
, you can also remove embeds that match specific criteria.Using the Prisma Schema above, let's delete all photos with a
height
of 100:v3.11.0
Compare Source
Today, we are excited to share the
3.11.0
stable release 🎉🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Major improvements and new features
Experimental support for Embedded Document Filters
In the previous release, we added embedded document support for creates, updates, and deletes. In version
3.11.0
, we’re adding the ability to filter embedded documents.Given the following schema:
You can now filter within an embedded document:
You can also filter on a "contains many" relationship:
This scratches the surface of what's possible. For a complete list of available operations, have a look at our documentation. Please share your feedback in this issue.
Ordering by embedded documents is in Preview
In addition to filtering, Prisma version
3.11.0
now supports sorting by an embedded document.Using the example schema above, you can sort orders by their zip code:
Learn more about this feature in our documentation and don’t hesitate to reach out in this issue.
MongoDB query logging support
In this release, we’ve added the ability to log MongoDB queries. You can enable query logging in the
PrismaClient
constructor:After enabling query logging, you'll start to see logs that resemble this in your console: