⚠️ Breaking Change
Impact Score: 7/10
Prisma 3.1.1 — 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.
Breaking-change evidence from the source
- [`prisma 3.0.1` warns about breaking changes.](https://github.com/prisma/prisma/issues/9171)
⚡ Executive Summary (TL;DR)
Prisma 3.1.1. Source highlight: Today, we are excited to share the `3.1.1` 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.
⚠️ Breaking Changes & Deprecations (1)
- - [`prisma 3.0.1` warns about breaking changes.](https://github.com/prisma/prisma/issues/9171)
✨ New Features & Capabilities (2)
- `nApi` preview feature is still allowed and suggested
- Add warnings if introspected without foreign keys
📄 View Raw Release Notes (Original Developer Log)
Today, we are excited to share the `3.1.1` 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%203.1.1%20Release!&url=https%3A%2F%2Fgithub.com%2Fprisma%2Fprisma%2Freleases%2Ftag%2F3.1.1) about the release.**
# **Major improvements**
## Referential Integrity is in Preview 🚀
Relational databases typically ensure integrity between relations with foreign key constraints, for example, given a 1:n relation between `User:Post`, you can configure the deletion of a user to cascade to posts so that no posts are left pointing to a User that doesn't exist. In Prisma, these constraints are defined in the Prisma schema with the `@relation()` attribute.
However, databases like [PlanetScale](https://planetscale.com/) do not support defining foreign keys. To work around this limitation so that you can use Prisma with PlanetScale, we're introducing a new `referentialIntegrity` setting in **Preview.**
This was initially introduced in version `2.24.0` of Prisma with the `planetScaleMode` preview feature and setting. Starting with this release both have been renamed to `referentialIntegrity`.
The setting lets you control whether referential integrity is enforced by the database with foreign keys (default), or by Prisma, by setting `referentialIntegrity = "prisma"`.
Setting Referential Integrity to `prisma` has the following implications:
- Prisma Migrate will generate SQL migrations without any foreign key constraints.
- Prisma Client will emulate foreign key constraints and [referential actions](https://www.prisma.io/docs/concepts/components/prisma-schema/relations/referential-actions) on a best-effort basis.
You can give it a try in version **3.1.1** by enabling the `referentialIntegrity` preview flag:
```jsx
datasource db {
provider = "mysql"
url = env("DATABASE_URL")
referentialIntegrity = "prisma"
}
generator client {
provider = "prisma-client-js"
previewFeatures = ["referentialIntegrity"]
}
```
After changing `referentialIntegrity` to `prisma`, make sure you run `prisma generate` to ensure that the Prisma Client logic has been updated.
Note that Referential Integrity is set to `prisma` by default when using MongoDB.
Learn more about it in [our documentation](https://www.prisma.io/docs/concepts/components/prisma-schema/relations/referential-integrity), and [share your feedback](https://github.com/prisma/prisma/issues/9380).
## Full-Text Search for the Go Client
In an earlier release, we added Full-Text Search (for PostgreSQL) to the Typescript Client. This was released as a Preview feature.
In this release, we've added that Preview feature to the Go Client. Enable it in your Go project by adding the `fullTextSearch` preview feature.
Here's an example:
```go
// Fetch all drafts with a title that contains the words fox or dog
posts, _ := client.Post.FindMany(
db.Post.Title.Search("fox | dog"),
db.Post.Status.Equals("Draft"),
).Exec(context.Background())
// Loop over the posts and print the title
for _, post := range posts {
fmt.Println(post.Title)
}
```
You can get started with the Go Client using our [Quick Start Guide](https://github.com/prisma/prisma-client-go/blob/main/docs/quickstart.md). Learn more about Full-Text Search in [our documentation](https://www.prisma.io/docs/concepts/components/prisma-client/full-text-search).
### **Interested in Prisma’s upcoming Data Proxy for serverless backends? Get notified! 👀**
Database connection management in serverless backends is challenging: taming the number of database connections, additional query latencies for setting up connections, etc.
At Prisma, we are working on a Prisma Data Proxy that makes integrating traditional relational and NoSQL databases in serverless Prisma-backed applications a breeze. If you are interested, you can sign up to get notified of our upcoming Early Access Program here:
[https://pris.ly/prisma-data-proxy](https://pris.ly/prisma-data-proxy)
## 📺 Join us for another "What's new in Prisma" livestream
Learn about the latest 3.1.1 release and other news from the Prisma community by joining Daniel Norman from the Prisma team for another [**What's new in Prisma**](https://www.youtube.com/watch?v=nLHJCzWxS5M) livestream.
The stream takes place [on Youtube](https://www.youtube.com/watch?v=nLHJCzWxS5M) on **Thursday, September 23** at **5pm Berlin | 8am San Francisco**.
## Fixes and improvements
### Prisma Migrate
- [Support databases without foreign keys](https://github.com/prisma/prisma/issues/7293)
- [How Can I Disable Foreign Key?](https://github.com/prisma/prisma/issues/8108)
- [Re-introspection should not remove relations when foreign keys are not allowed](https://github.com/prisma/prisma/issues/9147)
- [Validation error points to an invalid location in the PSL](https://github.com/prisma/prisma/issues/9219)
- [`planetScaleMode = true` is not preserved during `db pull`](https://github.com/prisma/prisma/issues/9253)
### Prisma Client
- [PANIC in query-engine\core\src\response_ir\internal.rs:334:86called `Option::unwrap()` on a `None` value](https://github.com/prisma/prisma/issues/8861)
- [Internal GraphQL schema marks JsonFilter types as DateTime](https://github.com/prisma/prisma/issues/9117)
- [`nApi` preview feature is still allowed and suggested](https://github.com/prisma/prisma/issues/9178)
### Prisma
- [`prisma 3.0.1` warns about breaking changes.](https://github.com/prisma/prisma/issues/9171)
- [Add warnings if introspected without foreign keys](https://github.com/prisma/prisma/issues/9272)
- [Forbid using `onUpdate` with prisma level integrity](https://github.com/prisma/prisma/issues/9281)
## Credits
Huge thanks to @saintmalik, @benkenawell, @ShubhankarKG, @hehex9 for helping!