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
Today, we are issuing the 2.2.0 stable release.
Next to a lot of bug fixes, this version includes a number of new features!
The Prisma VS Code extension now helps you fix any accidental typos and offers more convenient "Quick Fixes" right inside your editor.
<img src="https://imgur.com/SmgDmZM.gif" width="500px" />
provider dynamic via environment variablesThe provider field on the datasource defininitions in your Prisma schema now also accepts an array of strings (instead of just a plain string). This can be helpful when you want to switch environments which point to different databases based on an environment variable. Learn more about this feature here.
datasource db {
provider = ["sqlite", "postgres"]
url = env("DATABASE_URL")
}
Just a quick reminder: In v2.1.0 we introduced two experimental features, namely connectOrCreate and transactionApi. In case they're useful for you, please give them a try! They stay experimental in this release.
We were able to continue to improve the re-introspection flow based on your feedback. Thanks!
While Prisma Client already provides a count query for each model, we now introduce further aggregation functionality for number fields.
If your model has a field of type Int or Float, the following aggregations will be available:
sum: Sum up all values of a field for the selected rows.min: Get the minimum value for a field for the selected rows.max: Get the maximum value for a field for the selected rows.avg: Get the average value for a field for the selected rows.Note, that the count API is always available, while sum, min, max, and avg are only available for a model if it has a number field.
<table> <thead> <tr> <th>Prisma Schema</th> <th>Prisma Client Query</th> <th><pre>Result</pre></th> </tr> </thead> <tbody> <tr> <td> <pre lang="prisma"> model User { id Int @id age Int name String } </pre> </td> <td> <pre lang="js"> const result = await prisma.user.aggregate({ where: { age: { gt: 5 } }, // optional count: true, avg: { age: true, }, max: { age: true, }, min: { age: true, }, sum: { age: true } }) </pre> </td> <td>
<pre lang="js"> { "count": 10, "avg": { "age": 80 }, "max": { "age": 163 }, "min": { "age": 5 }, "sum": { "age": 800 } } </pre>
</td> </tr> </tbody> </table>
In order to enable this experimental feature, note that you need to set the feature flag aggregateApi in the Prisma Client generator block in your schema:
generator client {
provider = "prisma-client-js"
experimentalFeatures = ["aggregateApi"]
}
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).
prismaprisma generate throws exit code 0 in case of error caused by denied keywordsprisma migrate (save | up | down) --schema <file-path>prisma-client-jscount requests result in Invalid prisma.web_hooks.count invocationcreate and deletemigratemigrate up tells me to read in ./migrations/MIGRATION_ID/README.mdmigrate save/up hangs while creating databaseREADME.md of migration folder includes quaint in SQL@default(now()) so that it only can be used in DateTime fieldsvscode*** in GH action outputstudioprisma-enginesNothing 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
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