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 2 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
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
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 are issuing the 2.5.1 patch release.
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 are excited to share the 2.5.0 stable release.
🌟 Help us spread the word about Prisma by starring the repo ☝️, tweeting about the release or sharing your experience with Prisma on Reddit. 🌟
distinct and aggregations are now stableAfter running in preview mode for a number of releases, we are excited to promote the following features into this stable release:
middlewaresdistinctaggregateApiThis means you can omit the respective feature flags in the generator block in your Prisma schema:
generator client {
provider = "prisma-client-js"
- previewFeatures = ["middlewares", "distinct", "aggregateApi"]
}
Read on to learn about each feature individually!
Prisma Client's middleware lets you intercept Prisma Client queries to manipulate its parameters and interrogate its result. A middleware is a function that's passed to Prisma Client's $use method.
Middlewares are convenient for a number of use cases, for example:
The following example includes two middlewares:
const prisma = new PrismaClient()
prisma.$use(async (params, next) => {
const result = next(params);
return result;
}
prisma.$use(async (params, next) => {
return next(params);
}
📚 Documentation: Middleware
distinctPrisma Client allows you to filter duplicate rows from the response to a findMany query using the distinct option:
const distinctCities = await prisma.user.findMany({
select: {
city: true,
country: true,
},
distinct: ["city"],
});
📚 Documentation: Distinct
aggregatePrisma Client allows you to perform aggregations operations on the number fields (such as Int and Float) of a model - for example, you can get the average age of all users:
const aggregations = await prisma.user.aggregate({
avg: {
age: true,
},
});
console.log("Average age:" + aggregations.avg.age);
Prisma Client supports the following aggregations:
avg (average)sum (sum)min (minimum value)max (maximum value)📚 Documentation: Aggregations
In 2.5.0 we introduce case insensitive filters for querying capabilities to Prisma Client. It allows you to query for fields in a case insensitive way.
Note: This feature will not work if you're using database collations that do not know how to convert between upper- and lowercase letters (e.g. the
Ccollation).
📚 Documentation: Case sensitivity / Case-sensitive filtering
Insensitive filters querying needs to be enabled with the feature flag insensitiveFilters like so:
generator client {
provider = "prisma-client-js"
previewFeatures = ["insensitiveFilters"]
}
The new mode option you can pass to findMany influences the corresponding filter (e.g. contains or startsWith) but doesn't change the return type of the findMany query. mode can have two possible values:
default: Uses the default filter configured on the database level. If the collation is configured as case insensitive in the database, the default mode will be case insensitive as well. In that case, there's no need to use the insensitive mode.insensitive: Uses the case insensitive filter (if possible).const result = await prisma.user.findMany({
where: {
email: {
equals: '[email protected]',
mode: 'insensitive',
},
},
})
Please share your feedback on how this feature works for you. We are interested in both positive and negative feedback, so we know if this feature is already ready for production! (If encounter any problems, please open a new issue here).
<!-- Github issue to be published:
Title: Preview feature feedback: insensitiveFilters
Body:
Please share your feedback about the preview feature insensitiveFilters that was released in v2.5.0 in this issue.
If you have any questions, don't hesitate to ask them in the #prisma2 channel in the Prisma Slack.
-->
middlewares, distinct and aggregationApi removedAs mentioned above, we were able to promote three features into this stable release. This was thanks to your help and feedback, so please keep trying the preview features if they're useful to you and help us by sharing feedback.
2.1.0Just a quick reminder:
2.1.0 we introduced two experimental features, namely connectOrCreate and transactionApi.In case they're useful for you, please give them a try and share your feedback! These features remain in preview in this release.
To help spread the word about Prisma, we'd very much appreciate if you would star this repo 🌟 And if you're excited about the features in this week's release, then help us and share it on Twitter.
prismaOption::unwrap() on a None value', libs/datamodel/core/src/validator/validate.rs:178:29npx prisma introspect errors with [libs/sql-schema-describer/src/mysql.rs:353:27] column_name on indexes using expressions (MySQL 8.0.13+)prisma -vnpx prefix when being triggered via npx prisma itselfStudio command into cli packageTransaction is still a reserved word in 2.4.1prisma-client-jsmigratelanguage-toolsstudioprisma-enginesrepository_dispatch to workflow_dispatch to enable running branchesNothing 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