NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3157 most downloaded on npm
The Prisma CLI: one binary for the ORM, Composer, and the Prisma Developer Platform.
Last release today
08 Oct 2026
Ships fairly regularly
a new release about every 8 days
Nearly every release is documented
notes for 59 of the last 60 stable releases
9 versions withdrawn
withdrawn after publishing
10 years old
9363 releases · first in 2016
Nothing published for this version
Today, we are excited to share the 3.4.0 stable release 🎉
Today, we are excited to share the 3.4.0 stable release 🎉
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
We are pleased to announce that Prisma version 3.4.0 provides support for PostgreSQL 14. For a full list of our supported databases and their versions, see our documentation.
In Prisma version 3.4.0, we add support on MongoDB databases for using orderBy with aggregate groups. This was previously available for relational databases.
For example, if the data about your application's users includes their city of residence, you can determine which cities have the largest user groups. The following query sorts each city group by the number of users in that group, and returns the results in descending order (largest group first):
const groupBy = await prisma.user.groupBy({
by: ['city'],
_count: {
city: true,
},
orderBy: {
_count: {
city: 'desc',
},
},
})
For more information refer to our documentation about ordering by groups.
prisma db pushThe prisma db push command is used to sync your Prisma schema and your database schema in development.
Because MongoDB has a unique approach to database schema management, this initial release only syncs @unique, @@unique and @@index annotations in your schema.
Let's look at a quick example using this Prisma schema:
datasource db {
provider = "mongodb"
url = env("DATABASE_URL")
}
generator js {
provider = "prisma-client-js"
previewFeatures = ["mongoDb"]
}
model BlogPost {
id String @id @default(dbgenerated()) @map("_id") @db.ObjectId
title String @unique
}
After running prisma db push the CLI will display which changes were made:
Applying the following changes:
[+] Unique index `BlogPost_title_key` on ({"title":1})
Let's keep iterating on the schema. We apply the following changes:
titleauthor and titletitledatasource db {
provider = "mongodb"
url = env("DATABASE_URL")
}
generator js {
provider = "prisma-client-js"
previewFeatures = ["mongoDb"]
}
model BlogPost {
id String @id @map("_id") @db.ObjectId
author String
title String
@@unique([author, title], map: "titleAuthorShouldBeUniqueUnique")
@@index([title])
}
and run prisma db push again, we see what changes were applied:
Applying the following changes:
[-] Unique index `BlogPost_title_key`
[+] Index `BlogPost_title_idx` on ({"title":1})
[+] Unique index `titleAuthorShouldBeUniqueUnique` on ({"author":1,"title":1})
And voilà, the index and unique definitions in our schema are reflected in the database.
There is a known limitation with empty collections: if you db push indexes or uniques on fields that do not have values in the collection (they are missing in all existing documents), and you use db pull after that, the indexes and uniques will not be pulled because the fields will not be in your schema.
Since this is a Preview feature, any feedback is very much appreciated. Please get in touch by opening a GitHub issue.
For those interested in helping us getting introspection of embedded documents right, we packaged a first iteration into the CLI. More info in the Github issue.
Connection limit issues got you down? By using Prisma's Data Proxy, you can pool your connections to avoid overloading your database.
With this release, Prisma Client Go can now read and write to the Data Proxy.
You can generate a "Data Proxy"-enabled Go Client with the following command:
PRISMA_CLIENT_ENGINE_TYPE='dataproxy' go run github.com/prisma/prisma-client-go generate
Then you can use the Go Client as you normally would:
amas, err := client.Ama.FindMany().Exec(ctx)
if err != nil {
return err
}
for _, ama := range amas {
fmt.Println(ama.Status, ":", ama.Question)
}
// ANSWERED : How did you build this AMA page?
// ANSWERED : What is zero-cost type safety?
// UNANSWERED : What developer tools do you like?
Please note that the Data Proxy is currently in Early Access and still under active development. We do not recommend using the Data Proxy for production loads. If you run into any issues while trying to use the Go Client with the Data Proxy, please leave us a note in this issue.
We've had JSON filtering support in the TypeScript Client since . In 3.4.0, we're bringing support to the Go Client. Let's take a look at an example.
Given the following Prisma schema:
generator client {
provider = "prisma-client-go"
previewFeatures = ["filterJson"]
}
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
model Log {
id Int @id @default(autoincrement())
level Level
message String
meta Json
}
enum Level {
INFO
WARN
ERROR
}
You can now write the following to query a specific service name inside inside the meta field:
logs, _ := client.Log.FindMany(
db.Log.Meta.Path([]string{"service"}),
db.Log.Meta.Equals(db.JSON("\"api\"")),
).Exec(ctx)
See some more examples of what you can do in our documentation. Note that the examples are written in Typescript, but the same concepts apply to Go as well!
orderByAggregateGroup (since 2.21.0)Make sure to claim your ticket for our free Prisma Serverless Data Conference about all things databases and serverless with fantastic speakers from companies like PlanetScale, MongoDB, Vercel, Netlify, Cloudflare and CockroachDB.
Learn about the latest release and other news from the Prisma community by joining us for another "What's new in Prisma" livestream.
The stream takes place on Youtube on Thursday, November 04 at 5pm Berlin | 9am San Francisco.
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
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 excited to share the 3.3.0 stable release 🎉
Today, we are excited to share the 3.3.0 stable release 🎉
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
In 3.3.0, we're releasing Early Access support for Prisma Client connection pooling using Prisma Data Proxy. The Data Proxy feature of the Prisma Data Platform is now accessible to all users of the Prisma Data Platform (no need to request access).
Prisma Data Proxy is an intermediary between your app and your database. It manages connection pooling, so you can reliably use traditional databases in Serverless environments.
Users can configure a Data Proxy for free on the Prisma Data Platform and connect their Prisma applications to the proxy by enabling the feature flag for it in their code.
For detailed documentation and instructions please refer to pris.ly/data-proxy.
Using this new feature in Prisma Client and leveraging the Prisma Data Proxy, developers can now deploy Prisma applications on Cloudflare Workers. Here's what it looks like to use Prisma Client inside of this environment:
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
addEventListener('fetch', (event) => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request: Request): Promise<Response> {
await prisma.log.create({
data: {
level: 'Info',
message: `${request.method} ${request.url}`,
},
})
return new Response(`request method: ${request.method}!`)
}
Follow this deployment guide to learn how to use Prisma Client with your own Cloudflare Workers. If you run into any problems, you can reach us in this issue!
In 2.16.0, we first introduced ordering by a relation for relational databases. As of today's release, you can now order by a relation field in MongoDB as well:
// Return a list of posts ordered by the author's email address
// in ascending order.
await prisma.post.findMany({
orderBy: {
author: {
email: "asc",
},
},
})
Learn more in our documentation.
Prisma now supports connecting to MongoDB 5 databases. Take advantage of the latest and greatest from the fine folks at MongoDB HQ!
When working with optional timestamp fields in MySQL, there were cases where the database implicitly set the column to NOT NULL. To fix this behavior, we are now explicitly creating the columns as nullable.
You can find the full details about this change on GitHub.
With 3.3.0, you can now filter and atomically update scalar lists with Prisma Client Go.
Given the following Prisma schema:
model User {
id Int @id @default(autoincrement())
name String
pets String[]
}
You can filter pets with the following code:
user, err := client.User.FindFirst(
db.User.Pets.HasSome([]string{"Fido", "Scooby"}),
).Exec(ctx)
And when you add a new furry addition to your family, you can update your list with Push:
user, err := client.User.FindUnique(
db.User.Name.Equals(1),
).Update(
db.User.Items.Push([]string{"Charlemagne"}),
).Exec(ctx)
Learn more about how to use this new feature in our documentation. To dive deeper into the concept of scalar lists, you can read the guide on Working with scalar lists.
type constructschema.prisma from prisma init)prisma migrate dev exceeding 63 characters causing errors due to truncatingprisma initinit --url ... logs full connection URL when .env already existsLearn 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, October 21 at 5pm Berlin | 8am San Francisco.
Huge thanks to @otan for helping!
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →