Impact Score: 5/10
Prisma 2.11.0 โ Release Notes & Engineering Impact
Source available โ automated, not human-reviewed
Component: prisma ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
โก Executive Summary (TL;DR)
Prisma 2.11.0. Source highlight: Today, we are excited to share the `2.11.0` stable release ๐
Who Does This Impact? (Role-Based Analysis)
๐ป Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
๐ Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
โ๏ธ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
โจ New Features & Capabilities (4)
- Add integration test to trigger env var warning in Prisma Client
- Add Prisma icon to standard icon theme in VSCode
- Introduce support for scalar type `BigInt`
- Feature gate scalar types `Decimal` and `Bytes`
โก Performance & Enhancements (1)
- Improve error when using prisma migrate --experimental with native types
๐ View Raw Release Notes (Original Developer Log)
Today, we are excited to share the `2.11.0` stable release ๐
๐ **Help us spread the word about Prisma by starring the repo โ๏ธ or [tweeting](https://twitter.com/intent/tweet?text=Check%20out%20the%20latest%20Prisma%20release%202.11.0%20%F0%9F%9A%80%0D%0A%0D%0Ahttps://github.com/prisma/prisma/releases/tag/2.11.0) about the release.**
## Major Improvements
### Native database types in the Prisma schema (Preview)
We are super excited to share that this release brings you one of the most requested features since we released the initial version of Prisma: The representation of native database types in the Prisma schema.
Up to this release, the Prisma schema only allowed to represent a limited set of types: `String`, `Int`, `Float`, `Boolean`, `DateTime`, `Json`. Each of these types has a _default mapping_ to an underlying database type that's specified for each connector (see the mappings for [PostgreSQL](https://www.prisma.io/docs/reference/database-connectors/postgresql#type-mapping-between-postgresql-to-prisma-schema) and [MySQL](https://www.prisma.io/docs/reference/database-connectors/mysql#type-mapping-between-mysql-to-prisma-schema)).
With this release, you can now add an attribute to a field definition in order to determine which _specific_ database type it should be mapped to. Here is an example for a PostgreSQL database that specifies the underlying database types more specifically. Note that you also need to enable the feature via the the `nativeTypes` feature flag:
```prisma
generator client {
provider = "prisma-client-js"
previewFeatures = ["nativeTypes"]
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model User {
id Int @id @default(autoincrement())
name String? @db.VarChar(255)
}
model Post {
id Int @id @default(autoincrement())
title String @db.VarChar(100)
createdAt DateTime @db.Timestamp(6)
wordCount Int @db.SmallInt
}
```
In the above code snippet, all fields of the two Prisma models are annotated with attributes to diverge from the default mapping and determine the exact type that is used in the underlying database. For example, the `id` fields are represented as `db.BigInt` which maps to the `BIGINT` PostgreSQL type. You can find out more about which Prisma types can be annotated with which native type attributes in the docs for the [PostgreSQL](https://www.prisma.io/docs/reference/database-connectors/postgresql#type-mapping-between-postgresql-to-prisma-schema) and [MySQL](https://www.prisma.io/docs/reference/database-connectors/mysql#type-mapping-between-mysql-to-prisma-schema) connectors.
> **Note**: Native types don't work with Prisma Migrate yet. For the time being, you still need to configure the type manually in your database and pull it into your schema via introspection.
Please [share your feedback](https://github.com/prisma/prisma/issues/4045) 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](https://github.com/prisma/prisma/issues/new/choose)).
๐ **Documentation**: [Extended native type support](https://www.prisma.io/docs/concepts/components/preview-features/native-types)
### New types in the Prisma schema: `BigInt`, `Bytes` and `Decimal` (Preview)
With this release, we are further introducing three new _scalar types_ in the Prisma schema: `BigInt`, `Bytes` and `Decimal`. Here is an overview for how they map to the different databases that are supported by Prisma and how they're represented when queried with Prisma Client JS:
| Prisma | PostgreSQL | MySQL | SQLite | JavaScript / TypeScript |
| --------- | ---------------- | ---------------- | ------ | ---------------------------------------------------- |
| `Bytes` | `BYTEA` | `LONGBLOB` | n/a | `Buffer` |
| `Decimal` | `DECIMAL(65,30)` | `DECIMAL(65,30)` | n/a | [Decimal.js](https://github.com/MikeMcl/decimal.js/) |
| `BigInt` | `BIGINT` | `BIGINT` | n/a | `BigInt` |
To make use of these new types, you need to enable the `nativeTypes` feature flag in your Prisma schema:
```diff
generator client {
provider = "prisma-client-js"
+ previewFeatures = ["nativeTypes"]
}
```
Once you added the feature flag, be sure to run `prisma generate` again to update your local version of Prisma Client.
๐ **Documentation**: [Prisma types in the `nativeTypes` preview](https://www.prisma.io/docs/concepts/components/preview-features/native-types/native-types-mappings)
### Set foreign keys directly (Preview)
We now support writing foreign keys (also known as [relation scalars](https://www.prisma.io/docs/concepts/components/prisma-schema/relations#annotated-relation-fields-and-relation-scalar-fields)) directly with the `uncheckedScalarInputs` preview feature.
Consider this sample Prisma schema:
```prisma
generator client {
provider = "prisma-client-js"
previewFeatures = ["uncheckedScalarInputs"]
}
model User {
id Int @id @default(autoincrement())
posts Post[]
}
model Post {
id Int @id @default(autoincrement())
authorId Int
author User @relation(fields: [authorId], references: [id])
}
```
Instead of using `connect` when creating a new `Post` record to wire up a relation with a `User` record, you can now directly set the `authorId` value:
```ts
await prisma.post.create({
data: {
// You can now set the foreign key directly...
authorId: 1,
// ... or connect the relationship...
// author: {
// connect: {
// id: 1
// }
// }
// ... but not both at the same time
},
});
```
We'd love for you to give it a try. You can give us feedback in [this issue](https://github.com/prisma/prisma/issues/4209).
### The `$transaction` API is now stable
You can now use [`$transaction`](https://www.prisma.io/docs/concepts/components/prisma-client/transactions#the-transaction-api) API without the `transactionApi` feature flag.
```diff
generator client {
provider = "prisma-client-js"
- previewFeatures = ["transactionApi"]
}
```
### The `connectOrCreate` API is now stable
The [`connectOrCreate`](https://www.prisma.io/docs/concepts/components/prisma-client/relation-queries#nested-writes) API offers a convenient way to link or insert nested records.
You can now use it without the `connectOrCreate` feature flag.
```diff
generator client {
provider = "prisma-client-js"
- previewFeatures = ["connectOrCreate"]
}
```
### Middleware model parameter is now typed
This is a small quality-of-life improvement for developers using the Prisma [middleware](https://www.prisma.io/docs/concepts/components/prisma-client/middleware). The `params.model` parameter that's passed into a middleware function is now typed to your model so you can now reliably tie middleware to models:
```ts
prisma.$use(async (params, next) => {
switch (params.model) {
case 'user':
// ...
case 'project:
// ...
}
})
```
If you need the old behavior you can cast `params.model` back to a `string` by wrapping it `String(params.model)`.
๐ **Documentation**: [Middleware](https://www.prisma.io/docs/concepts/components/prisma-client/middleware)
### Deprecation of multi-provider array
You will now see a warning if you have multiple providers in your `datasource`. We recently realized that supporting an array of providers in the Prisma schema was premature, adding complexity in the process of improving the product, and causing some confusion about our intent.
You can read more about the decision and what to do about it in [this issue](https://github.com/prisma/prisma/issues/3834).
### Validate `PrismaClient` inputs at runtime
We now validate the `parameters` we accept in `new PrismaClient(parameters)`. This is unlikely to affect you unless you were passing invalid parameters into `PrismaClient` before.
## Prisma Client Go is now Early Access ๐
We're happy to announce that [Prisma Client Go](https://github.com/prisma/prisma-client-go) has graduated from experimental to [Early Access](https://www.prisma.io/docs/about/releases#early-access).
You can [get started here](https://github.com/prisma/prisma-client-go/blob/master/docs/quickstart.md). We'd love to learn more about how you use the Go Client during Early Access. You can schedule a [call with us](https://calendly.com/c/DDAUQECG7NYIBU5Q) or [chat with us on Slack](https://slack.prisma.io/) in the #prisma-client-go channel. We're looking forward to hearing from you!
## ๐บ 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"](https://www.youtube.com/watch?v=XFCGpwcVUCY&ab_channel=Prisma) livestream.
The stream takes place [on Youtube](https://www.youtube.com/watch?v=XFCGpwcVUCY&ab_channel=Prisma) on **Thursday, November 12** at **5pm Berlin | 8am San Francisco**.
## ๐ Make your online talk recordings more accessible with subtitles
We'd love to help you make your talk recordings (no matter if Meetup or conference talk) more accessible by [adding subtitles](https://twitter.com/prisma/status/1325744486425780224) to it **for free**! Reach out to [[email protected]]([email protected]) if you are interested in getting subtitles for your videos!
## Fixes and improvements
### [`prisma`](https://github.com/prisma/prisma)
- [Can't create a record with only the foreign key to another table](https://github.com/prisma/prisma/issues/2152)
- [Foreign key field is not being set when using a nested create for a one-to-one relation](https://github.com/prisma/prisma/issues/3081)
- [Prisma Client is unable to fetch DateTime lists](https://github.com/prisma/prisma/issues/3517)
- [Middleware params model should be an enum or union of strings.](https://github.com/prisma/prisma/issues/3545)
- [vercel/pkg broken on windows](https://github.com/prisma/prisma/issues/3571)
- [vercel/pkg errors on windows](https://github.com/prisma/prisma/issues/3572)
- [Introspection fails instantly MariaDB](https://github.com/prisma/prisma/issues/3708)
- [DATABASE_URL verification still attempted when datasource override provided in PrismaClient constructor](https://github.com/prisma/prisma/issues/3750)
- [Introspection should try to preserve custom Enum names on MySQL even without @map](https://github.com/prisma/prisma/issues/3802)
- [Mutliple 1-n self relations break migrations](https://github.com/prisma/prisma/issues/3805)
- [.transaction([]) fails with Request Timeout Error on large dataset](https://github.com/prisma/prisma/issues/3892)
- [JSON value truncate floating numbers](https://github.com/prisma/prisma/issues/3918)
- [Postgresql: Large double precision float values cause panic](https://github.com/prisma/prisma/issues/3923)
- [Error in prisma results in unhandled promise rejection](https://github.com/prisma/prisma/issues/3945)
- [Consolidate Undici error handling](https://github.com/prisma/prisma/issues/3989)
- [Internal: update our `pnpm` version used for development and CI](https://github.com/prisma/prisma/issues/3994)
- [Internal: Create new milestone check GitHub Action](https://github.com/prisma/prisma/issues/4000)
- [Prisma and Netlify, binary is not downloaded automatically since 2.8.0](https://github.com/prisma/prisma/issues/4011)
- [Detect and enforce Node Version in `preinstall` hook so pnpm fails clearly](https://github.com/prisma/prisma/issues/4035)
- [Package name reuse (.prisma/client) when generating multiple prisma clients causes issues with some other libraries (e.g. jest)](https://github.com/prisma/prisma/issues/4048)
- [Native Types: @db.BigInt should be BigInt](https://github.com/prisma/prisma/issues/4050)
- [Prisma generate or introspect don't work when nativeTypes preview is enabled](https://github.com/prisma/prisma/issues/4064)
- [Cannot update a model with composite keys through a referenced model](https://github.com/prisma/prisma/issues/4082)
- [RangeError: Invalid count value during create](https://github.com/prisma/prisma/issues/4083)
- [Prisma Client doesn't load root .env](https://github.com/prisma/prisma/issues/4096)
- [You are trying to load env variables which are already present in your project root .env](https://github.com/prisma/prisma/issues/4098)
- [Stabilize connectOrCreate](https://github.com/prisma/prisma/issues/4125)
- [Stabilize transactionApi](https://github.com/prisma/prisma/issues/4126)
- [Add integration test to trigger env var warning in Prisma Client](https://github.com/prisma/prisma/issues/4144)
- [Improve error when using prisma migrate --experimental with native types](https://github.com/prisma/prisma/issues/4186)
### [`prisma-client-js`](https://github.com/prisma/prisma-client-js)
- [Runtime validation for Prisma client constructor parameters](https://github.com/prisma/prisma-client-js/issues/889)
- [$transaction spread operator](https://github.com/prisma/prisma-client-js/issues/894)
### [`language-tools`](https://github.com/prisma/language-tools)
- [Add Prisma icon to standard icon theme in VSCode](https://github.com/prisma/language-tools/issues/158)
- [Gitpod Support](https://github.com/prisma/language-tools/issues/424)
- [prisma.plugin.nextjs.addTypesOnSave broken](https://github.com/prisma/language-tools/issues/602)
### [`studio`](https://github.com/prisma/studio)
- [Unable to view / edit DateTime lists](https://github.com/prisma/studio/issues/529)
- [Case insensitive searching](https://github.com/prisma/studio/issues/561)
- [npx prisma studio doesn't work on WSL 1](https://github.com/prisma/studio/issues/563)
- [Cannot type "." in a float column](https://github.com/prisma/studio/issues/571)
- [Websockets fails when studio is behind a reverse proxy](https://github.com/prisma/studio/issues/572)
- [[design] Cell overflow](https://github.com/prisma/studio/issues/576)
### [`prisma-engines`](https://github.com/prisma/prisma-engines)
- [Introduce support for scalar type `BigInt`](https://github.com/prisma/prisma-engines/issues/1284)
- [Native Type Precisions](https://github.com/prisma/prisma-engines/issues/1291)
- [Remove Scalar Type `Duration`](https://github.com/prisma/prisma-engines/issues/1317)
- [Feature gate scalar types `Decimal` and `Bytes`](https://github.com/prisma/prisma-engines/issues/1318)
- [Remove TimestampWithTimeZone, TimeWithTimeZone and Intervall](https://github.com/prisma/prisma-engines/issues/1323)