Prisma: 3.1.1 Release

Release date:
September 21, 2021
Previous version:
3.0.2 (released September 9, 2021)
Magnitude:
10 Diff Delta
Contributors:
6 total committers
Data confidence:
Commits:

33 Commits in this Release

Ordered by the degree to which they evolved the repo in this version.

Authored September 8, 2021
Authored September 15, 2021
Authored September 15, 2021
Authored September 8, 2021

Top Contributors in 3.1.1

janpio
renovate-bot
Jolg42
millsp
prisma-bot
netlify-team-account-1

Directory Browser for 3.1.1

We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.

Release Notes Published

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 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 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 on a best-effort basis.

You can give it a try in version 3.1.1 by enabling the referentialIntegrity preview flag:

datasource db {
  provider             = "mysql"
  url                  = env("DATABASE_URL")
  referentialIntegrity = "prisma"
}

generator client {
  provider        = "prisma-client-js"
  previewFeatures = ["referentialIntegrity"]
}

Note that this feature is not applicable to MongoDB.

Learn more about it in our documentation.

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:

// 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. Learn more about Full-Text Search in our documentation.

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

📺 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 livestream.

The stream takes place on Youtube on Thursday, September 23 at 5pm Berlin | 8am San Francisco.

Fixes and improvements

Prisma Migrate

Prisma Client

Prisma

Credits

Huge thanks to @saintmalik, @benkenawell, @ShubhankarKG, @hehex9 for helping!