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 5 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
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
Today, we are excited to share the 3.6.0 stable release 🎉
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
In this version we introduce support for full-text indexes in the db pull, db push and migrate commands for MySQL and MongoDB databases as a Preview feature. This allows using them in the Prisma schema and prevents validation errors in some database schemas.
For now we do not enable the full-text search commands in the Prisma Client. They will be implemented separately, and the progress can be followed in the MongoDB and MySQL issues.
Add the preview feature fullTextIndex to the Prisma schema, after which the @@fulltext attribute is allowed in the Prisma schema:
generator js {
provider = "prisma-client-js"
previewFeatures = ["fullTextIndex"]
}
model A {
id Int @id
title String @db.VarChar(255)
content String @db.Text
@@fulltext([title, content])
}
Please note that it is mandatory to do db pull with the preview feature enabled before using Prisma Migrate on existing MySQL databases, so the index types can be converted and will not get overwritten in the next migration.
For more details check out our documentation.
With the extendedIndexes preview feature, it is now possible to use Hash instead of the default BTree as the index algorithm on PostgreSQL databases. A hash index can be much faster for inserts, but it only supports equals operation in the database.
An example of using a hash index:
generator js {
provider = "prisma-client-js"
previewFeatures = ["extendedIndexes"]
}
model A {
id Int @id
value Int
@@index([value], type: Hash)
}
For more details check out our documentation.
Until this release, the language server powering the Prisma VS Code extension relied on logic from the Prisma engines in the form of a native binary. Downloading and running the native binary required a large amount of custom logic and led to problems due to network failures, operating system permissions and malicious code detection issues.
Starting with 3.6.0, the language server and the VS Code extension use logic compiled to WebAssembly and distributed through npm. There is no runtime binary download and no external process involved anymore. We expect this new distribution model to be more robust and hence provide a better experience for our users.
If you have any feedback, please leave an issue in the prisma/language-tools repository.
Bytes can now be filtered with in and notInYou can now use in and notIn operations on the Bytes type:
const audioTracks = raws.map(raw => {
return Buffer.from(raw)
})
const result = await prisma.audio.find({
where: {
track:
in: audioTracks
}
}
})
Thanks @serejkaaa512 for your contribution!
Json fields now accept read-only typesThis is a small quality-of-life improvement. You can now pass immutable values into Json fields. In the following example, audit is a Json field that accepts a read-only array:
const trail = [
{ event: "signup" },
{ event: "subscribe" },
{ event: "invite friend" }
] as const
await prisma.user.create({
data: {
audit: trail
}
})
Learn more in this issue.
If you've spent some time using the new Interactive Transaction API with the binary engine, you may have encountered this timeout error:
Transaction API error: Transaction already closed: Transaction is no longer valid. Last state: 'Expired'.
This could happen if you had two concurrent requests modifying the same resource at the same time using the binary engine type.
It took us a while to track down the source of this error, but it turned out to be a low-level misconfiguration in our HTTP client. We disabled HTTP pipelining to fix this problem.
notIn filters for large queriesThis most likely didn't affect you, but if you ever tried using notIn with a large query, you may have received an incorrect result.
The query engine automatically breaks up large queries into smaller queries and intersects the results. Most of the time this works as expected but for certain queries like notIn, the intersection of results is incorrect.
We fixed this in 3.6.0. You can now use in and notIn operations on the Bytes type:
const denyList = [/* ... large list of user ids ... */]
const result = await prisma.user.findMany({
where: {
id: {
notIn: denyList
}
}
})
This query will break up the query into chunks that your database can manage:
select * where User not in ($1,$2, ..., $5000)
select * where User not in ($1000,$1001, ..., $6000)
... and return the correct results. Learn more in this issue.
in natively for bytesThe provided database string is invalid. Invalid MongoDB connection string in database URL. insteadprisma migrate dev with timeout but works with prisma db seeddbgenerated migrations in MySQL are broken (since 3.4.x)Huge thanks to @Akxe, @safareli for helping!
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, December 02 at 5pm Berlin | 8am San Francisco.
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