npm @prisma/client 3.12.0

latest releases: 5.21.0-dev.3, 5.21.0-integration-itx-refactor.16, 5.21.0-integration-itx-refactor.15...
2 years ago

Today, we are excited to share the 3.12.0 stable release 🎉

🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟

Major improvements and new features

MongoDB is now Generally Available

If you’ve been using MongoDB since it was in Preview, we'd like to say: Thank you! Your testing and feedback has been essential during the preview phase, and our MongoDB support is much better because of it.

Today we’re proud to announce that MongoDB is now stable and production-ready. After upgrading to 3.12.0, you can remove the MongoDB preview flag in your schema:

 datasource db {
   provider = "mongodb"
   url      = env("DATABASE_URL")
 }

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

We’ve been working hard towards this day ever since we launched MongoDB in Preview in July 2021.

Here are some of the feature highlights we developed over this period:

  • Expressive and type-safe operations for querying MongoDB embedded documents
  • Thorough introspection support for using Prisma with existing MongoDB databases
  • Declarative index management right from your Prisma Schema with db push
  • Powerful raw query APIs to help you incrementally migrate to Prisma

You can learn about these features in the release blog post, and more, in our freshly brewed MongoDB Guide. For newcomers to Prisma with MongoDB, we recommend you check out our Getting Started Guide.

To celebrate this milestone, we invite you to join Prisma’s MongoDB Launch Week starting on April 25th. Enjoy a jam-packed week of exclusive workshops with plenty of opportunities to win free MongoDB Atlas credits and swag. It’s free to sign-up and available anywhere you have an internet connection.

🚨 Please be aware that we made a few breaking changes to tie up loose ends before General Availability:

We made some changes in the 3.11.1 patch release in case you missed it.

Index support on composite type fields

We also added support for adding indexes on embedded document fields in MongoDB. This means that you can now define a normal, unique, or full-text index in your schema.

type Address {
  street String
  number Int
}

model User {
  id      Int     @id
  email   String
  address Address

  @@index([email, address.number])  /// normal index
  @@unique([email, address.street])  /// unique index
  @@fulltext([email, address.street]) /// full-text index
}

Note: Prisma Client does not yet fully support the feature for now. This will be rolled out in a future release.

Improved Connection Pooling Resiliency

In 3.12.0, we busted a ghost that has been bugging teams since the early days of the Prisma ORM. Under certain amounts of load, some people reported that the connection pool would sometimes drop connections or deadlock and not recover.

After many sightings and a lot of head-scratching, we were finally able to reproduce the issue. This allowed us to narrow down the problem to one of our dependencies and fix the problem.

To read the nitty gritty details of the problem and our solution, check out this issue.

Fixes and improvements

Prisma Client

Prisma

Prisma Migrate

Language tools (e.g. VS Code)

Prisma Engines

Credits

Huge thanks to @ever0de, @chronotc, @hayes, @maddhruv, @jasimon, @codesee-maps[bot], @andyrichardson, @xnerhu, @Josh-a-e, @dusandz for helping!

💼 We're hiring!

If you're interested in joining our growing team to help empower developers build data-intensive applications, Prisma is the place for you.

We're looking for a Developer Success Engineer and Back-end Engineer: Prisma Data Platform.

Feel free to read through the job descriptions and apply using the links provided.

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

The stream takes place on YouTube on Thursday, April 7 at 5 pm Berlin | 8 am San Francisco.

Don't miss a new client release

NewReleases is sending notifications on new releases.