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 3 days ago
27 Aug 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
10653 releases · first in 2020
Release timeline
10653 releases since 2020One column per quarter.
Releases
- 4.17.0-dev.4130 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.4030 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.3928 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.3826 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.3723 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.3623 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.3523 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.3423 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.3323 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.3223 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.3023 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.2923 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.2823 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.2723 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.2623 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.2423 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.2322 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.2222 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.2122 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.2022 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.1922 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.1822 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.1722 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.1621 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.1521 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.1421 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.1321 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.1221 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.1121 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.1021 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.921 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.821 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.721 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.621 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.521 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.421 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.321 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.221 Jun 2023pre-release
Nothing published for this version
- 4.17.0-dev.120 Jun 2023pre-release
Nothing published for this version
- 4.16.230 Jun 2023
Release notes
Open source →Today, we are issuing the
4.16.2patch release.Fixes in Prisma Client
- 4.16: (MongoDB) Generated types for list composites are incorrect
- Getting wrong types with prisma client extensions
- Prisma Client fluent API does not work with extends anymore on 4.16.1
- Prisma Client Extensions:
$allModels: { $allOperations }sets query type tonever - Result types are incorrectly inferred when
undefinedexplicitly passed toselect/include
- 4.16.2-dev.430 Jun 2023pre-release
Nothing published for this version
- 4.16.2-dev.330 Jun 2023pre-release
Nothing published for this version
- 4.16.2-dev.223 Jun 2023pre-release
Nothing published for this version
- 4.16.2-dev.123 Jun 2023pre-release
Nothing published for this version
- 4.16.122 Jun 2023
Release notes
Open source →Today, we are issuing the
4.16.1patch release.Fixes in Prisma Client
- Field references are not available on extended clients
- 4.16.x cannot wrap
$extendin factory function whencompilerOptions.compositeistrue - Prisma Schema Type inside a Type not generating a right Payload
- Query in findMany in prisma extends returns a wrong type
- 4.16.0 Count query is not returning the right type when in a transaction
- FindMany returns wrong type after extending prisma client
- Can't specify $queryRawUnsafe return type after extending prisma client
- 4.16.1-dev.922 Jun 2023pre-release
Nothing published for this version
- 4.16.1-dev.822 Jun 2023pre-release
Nothing published for this version
- 4.16.1-dev.721 Jun 2023pre-release
Nothing published for this version
- 4.16.1-dev.621 Jun 2023pre-release
Nothing published for this version
- 4.16.1-dev.521 Jun 2023pre-release
Nothing published for this version
- 4.16.1-dev.421 Jun 2023pre-release
Nothing published for this version
- 4.16.1-dev.321 Jun 2023pre-release
Nothing published for this version
- 4.16.1-dev.221 Jun 2023pre-release
Nothing published for this version
- 4.16.1-dev.121 Jun 2023pre-release
Nothing published for this version
- 4.16.020 Jun 2023
Release notes
Open source →🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Highlights
This release promotes the following Preview features to General Availability:
- Prisma Client extensions
- Ordering by nulls first and last
- Count by filtered relation
Prisma Client extensions are Generally Available
Today, we’re very excited to announce that Prisma Client extensions are Generally Available and production-ready! This means you can use the feature without the
clientExtensionsPreview feature flag.🚀Prisma Client extensions are a powerful new feature for adding functionality on top of your Prisma Client in a type-safe manner. With this feature, you can create simple, but flexible solutions.
Prisma Client extensions have 4 different types of components that can be included in an extension:
- Result extensions components: add custom fields and methods to query result objects, for example, virtual/computed fields.
- Model extensions components: enable you to add new methods to your models alongside existing model methods such as
findMany. - Query extensions components: let you hook into the lifecycle of a query and perform side effects, modify query arguments, or modify the results in a type-safe way. These are an alternative to middleware that provide complete type safety and can be applied in an ad-hoc manner to different extensions.
- Client extensions components: allow you to add new top-level methods to Prisma Client. You can use this to extend Prisma Client with functionality that isn’t tied to specific models.
const prisma = new PrismaClient().$extends({ name: "extension-name", result: { /* ... */ }, model: { /* ... */ }, query: { /* ... */ }, client: { /* ... */ }, });You can also create and publish extensions for others to use. Learn more about how to share extensions in our documentation.
More features and changes made to Client Extensions
We also made the following improvements to Prisma Client extensions in preparation for General Availability:
-
Added a top-level
$allOperationsmethod forquerycomponent that captures all model operations as well as top-level raw queries. Refer to our documentation for more information.const prisma = new PrismaClient().$extends({ query: { $allOperations({ args, query, operation, model }) { /* your extension's logic here */ } } }) -
Prisma.validatorcan now also be used for extended types:const prisma = new PrismaClient().$extends({/* ... */}) const data = Prisma.validator(prisma, 'user', 'findFirst', 'select')({ id: true, }) -
querycallbacks for$queryRawand$executeRawwill always receiveSqlinstance asargs. This instance can be used to compose a new query usingPrisma.sql:const prisma = new PrismaClient().$extends({ query: { $queryRaw({ args, query }) { return query(Prisma.sql`START TRANSACTION; ${args}; COMMIT;`) } } }) -
$oncannot be called after extending Prisma Client. Therefore, if you want to use event handlers together with extensions, we recommend using the$onmethod before$extends.const prisma = new PrismaClient() .$on(/* ... */) .$extends({/* ... */}) -
We updated the import path for utilities used for authoring extension to
@prisma/client/extensionrather than@prisma/client+ import { Prisma } from "@prisma/client/extension" - import { Prisma } from "@prisma/client"
Deprecating Middleware
We also took this opportunity to deprecate Prisma Client’s middleware. We recommend using to using Prisma Client
queryextension components which can be used to achieve the same functionality and with better type safety.🚧 Middleware will still be available in Prisma Client’s API. However, we recommend using Prisma Client extensions over middleware.
Ordering by nulls first and last is now Generally Available
Starting with this release, we’re excited to announce that
orderByNullsis now Generally Available! This means you can use the feature without theorderByNullsPreview feature flag.🌟We introduced this feature in 4.1.0 to enable you to sort records with null fields to either appear at the beginning or end of the result.
The following example query sorts posts by
updatedAt, with records having a null value at the end of the list:await prisma.post.findMany({ orderBy: { updatedAt: { sort: 'asc', nulls: 'last' }, }, })To learn more about this feature, refer to our documentation.
We’re excited to see what you will build! Feel free to share with us what you build on Twitter, Slack, or Discord.
Count by filtered relation is now Generally Available
This release moves the
filteredRelationCountPreview feature to General Availability! This means you can use the feature without thefilteredRelationCountPreview feature flag.We first introduced this feature in 4.3.0 to add the ability to count by filtered relations.
The following query, for example, counts all posts with the title “Hello!”:
await prisma.user.findMany({ select: { _count: { select: { posts: { where: { title: 'Hello!' } }, }, }, }, })To learn more about this feature, refer to our documentation.
Introspection warnings for expression indexes
In the last two releases, 4.13.0 and 4.14.0, we added 9 introspection warnings. These warnings surface features in use in your database that cannot currently be represented in the Prisma schema.
In this release, we’re adding one more introspection warning to the list: expression indexes.
On database introspection, the Prisma CLI will surface the feature with a warning, and a comment in your Prisma schema for sections for each feature in use. The warnings will also contain instructions for workarounds on how to use the feature.
Fixes and improvements
Prisma Client
- Attach comments to enum values
- Extend Prisma Client
- Triple-slash Comments should attach to Composite Types
- Nested disconnect fails on MongoDB with extendedWhereUnique
- [ClientExtensions, TypeScript] Fields of custom type aren't available when using the ClientExtensions preview-feature, unless
select'd explicitly. - Extensions incorrect typings generated (casing)
- Misleading error message of
prisma generatewhen running it directly after installingprisma - Prisma.validator: with clientExtensions enabled, Typescript can no longer compute types
- enum docstrings do not make it to the prisma client
- VScode behavior is very slow while using clientExtensions
- Client extensions in interactive transactions are bound to the base client
$runCommandRawis not passing the expected data to middleware or client extension- PCE: Improve runtime types in raw query extensions
- Sequential transactions run out of order when using client extensions and middleware
- Client Extension: Make
.prismaVersion.clientavailable on "@prisma/client/scripts/default-index" - Cannot create record with Prisma.DbNull when clientExtensions enabled
- Extended client raw queries fail when using the Prisma.sql helper
- jsonProtocol: array shortcut is missing for
distinctfield - Prisma Client Extension: support
Prisma.validator - Prisma Client: make
clientExtensionsGA - PCE: Query extensions of
$queryRawUnsafealso triggers$allModels.$allOperations - PCE:
$onapplied to an extended client is also bound to the parent client - Type "never" returned from nested properties when using "select" after enabling data proxy + accelerate
$queryRaw*is broken in interactive transactions together withclientExtensionsin4.16.0-dev.17- Deploying to an offline environment fails because it tries to download a Prisma engine checksum file
- jsonProtocol: Wrong error message shown for validation error for checked/unchecked types
- Bug: FindXOrThrow don't get batched on the engine
Prisma Migrate
- Allow skipping sha checksum
- Documentation not available in DMMF for MongoDB
types prisma db pullgets rid of@default(uuid())on re-introspection
Language tools (e.g. VS Code)
Prisma Studio
📺 Join us for another "What's new in Prisma" live stream
Learn about the latest release and other news from the Prisma community by joining us for another "What's new in Prisma" live stream.
The stream takes place on YouTube on Thursday, June 22 at 5 pm Berlin | 8 am San Francisco.
- 4.16.0-integration-studio-xdg-enoent.116 Jun 2023pre-release
Nothing published for this version
- 4.16.0-integration-studio-direct-url.63 Jun 2023pre-release
Nothing published for this version
- 4.16.0-integration-studio-direct-url.53 Jun 2023pre-release
Nothing published for this version
- 4.16.0-integration-studio-direct-url.43 Jun 2023pre-release
Nothing published for this version
- 4.16.0-integration-studio-direct-url.33 Jun 2023pre-release
Nothing published for this version