Prisma Client is an auto-generated, type-safe and modern JavaScript/TypeScript ORM for Node.js that's tailored to your data. Supports PostgreSQL, CockroachDB, MySQL, MariaDB, SQL Server, SQLite & MongoDB databases.
Last release 4 days ago
01 Sep 2026
Ships fairly regularly
a new release about every 1 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
3 versions withdrawn
withdrawn after publishing
7 years old
10657 releases Β· first in 2020
One column per quarter.
Nothing published for this version
Today we are releasing the 6.2.1 patch release to address an issue with some of the omitApi preview feature checks having been accidentally omitted when making the feature GA. Now it is fully functional without the preview feature flag.
Nothing published for this version
Nothing published for this version
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 json and enum fields in SQLite, a new updateManyAndReturn function, support for ULID values, as well as the promotion of the omit feature from Preview to Generally Availability.
omit is now production-readyOur number one requested feature is out of Preview and Generally Available. In 6.2.0, you no longer need to add omitApi to your list of Preview features:
generator client {
provider = "prisma-client-js"
- previewFeatures = ["omitApi"]
}
As a refresher: omit allows 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:
const result = await prisma.user.findMany({
omit: {
password: true,
},
});
Or globally, to ensure a field is excluded from all queries of a certain model:
const prisma = new PrismaClient({
omit: {
user: {
password: true
}
}
})
// The password field is excluded in all queries, including this one
const user = await prisma.user.findUnique({ where: { id: 1 } })
For more information on omit, be sure to check our documentation.
json and enum fields in SQLitePrevious to this version, you could not define json and enum fields 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:
datasource db {
provider = "sqlite"
url = "file:./dev.db"
}
model User {
id Int @id @default(autoincrement())
name String
role Role
data Json
}
enum Role {
Customer
Admin
}
Similar to cuid2 support 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 String fields:
model User {
id String @id @default(ulid())
}
updateManyAndReturnupdateMany allows you to update many records in your database, but it only returns the count of the affected rows, not the resulting rows themselves. With updateManyAndReturn you are now able to achieve this:
const users = await prisma.user.updateManyAndReturn({
where: {
email: {
contains: 'prisma.io',
}
},
data: {
role: 'ADMIN'
}
})
This call to updateManyAndReturn will now return the actual records that have been updated in the query:
[{
id: 22,
name: 'Alice',
email: '[email protected]',
profileViews: 0,
role: 'ADMIN',
coinflips: []
}, {
id: 23,
name: 'Bob',
email: '[email protected]',
profileViews: 0,
role: 'ADMIN',
coinflips: []
}]
Please note that like createManyAndReturn, updateManyAndReturn is only supported in PostgreSQL, CockroachDB, and SQLite.
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 βοΈ
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.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Today we're releasing Prisma ORM version 6.1.0
In this version our tracing Preview feature is being graduated to GA!
The tracing Preview feature is now stable. You now no longer have to include tracing in 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:
prisma:client:operation
prisma:client:serialize
prisma:engine
prisma:engine:connection
prisma:engine:db_query
prisma:engine:serialize
Now, the following are reported:
prisma:client:operation
prisma:client:serialize
prisma:engine:query
prisma:engine:connection
prisma:engine:db_query
prisma:engine:serialize
prisma:engine:response_json_serialization
Additionally, we have made a few changes to our dependencies:
@opentelemetry/api is now a peer dependency instead of a regular dependencyregisterInstrumentations in @opentelemetry/instrumentation is now re-exported by @prisma/instrumentationAfter upgrading to Prisma ORM 6.1.0 you will need to add @opentelemetry/api to your dependencies if you haven't already:
npm install @opentelemetry/api
You will also no longer need to have @opentelemetry/instrumentation if you only use registerInstrumentations. In this case you can import registerInstrumentations from @prisma/instrumentation
- import { PrismaInstrumentation } from '@prisma/instrumentation'
+ import { PrismaInstrumentation, registerInstrumentations } from '@prisma/instrumentation'
Comments can now be defined as multi-line in your Prisma schema! Comments can use the existing format:
// this is a schema comment
or can now also use our multi-line format:
/*
* this is a multi-line comment
* You can add in all you want here
* Keep typing and this comment will keep on going
*/
As we're moving our tracing preview to GA, a number of issues have been resolved. Here are a few highlights:
suppressTracingWe also have a number of other issues that were resolved outside of our tracing feature.
PrismaNeonHTTP adapterfindUnique returns null when used instead of Promise.allTypeError: parentTracer.getSpanLimits is not a functionSpan constructorprisma:engine spans do not respect suppressTracing()tracing: engine spans don't pass through Samplerprisma:client:operationprisma:engine spans are missing when there are multiple new PrismaClient() invocationsparentTracer.getSpanLimits is not a functionopentelemetry-sdk-trace-base (e.g. Datadog tracer)traceparent comments with multiple SQL statements@prisma/instrumentation dependencies peer dependenciesdb.statement attribute doesn't include the traceparent commentregisterInstrumentations uses the global provider instead of the one passed inPrismaNeonHTTP adapter breaks on some types e.g. timestampPrisma failed to detect the libssl/openssl version to useNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version