Skip to content

4.9.0

Compare
Choose a tag to compare
@ruheni ruheni released this 17 Jan 17:57
· 1752 commits to main since this release
f6e1ca6

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

Highlights

Initial support for database views (Preview)

This release introduces a new keyword, view, behind the views Preview feature flag. You can manually add a view to your Prisma schema, which is ignored when running migrations. This is a small step forward but should already be helpful to many of you depending on workarounds and shell scripts to work with views and Migrate.

Here is an example usage of views:

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

view UserInfo {
  id    Int    @id
  // from the User model
  email String
  name  String
  // from the Profile model
  bio   String
}

model User {
  id      Int      @id @default(autoincrement())
  email   String   @unique
  name    String?
  profile Profile?
}

model Profile {
  id     Int    @id @default(autoincrement())
  bio    String
  user   User   @relation(fields: [userId], references: [id])
  userId Int    @unique
}

To learn more, head to our documentation. Try it out and let us know your thoughts on this GitHub issue.

Multi-schema support for SQL Server (Preview)

We're thrilled to share that this release adds Preview support for multi-schema for SQL Server.

This release adds support for:

  • Introspecting databases that organize objects in multiple database schemas
  • Managing multi-schema database setups directly from Prisma schema
  • Generating migrations that are database schema-aware with Prisma Migrate
  • Querying across multiple database schemas with Prisma Client

If you already have a SQL Server database using multiple schemas, you can quickly get up and running and set up multiple schemas by:

  • Enabling the Preview feature in the Prisma schema
  • Defining the schemas in the schemas property in the datasource block
  • Introspecting your database using prisma db pull

You can further evolve your database schema using the multi-schema Preview feature by using prisma migrate dev.

For further details, refer to our documentation and let us know what you think in this GitHub issue.

Prisma Client Extensions improvements

In this release, we've made a number of improvements to the Prisma Client Extensions Preview feature:

  1. Retrieving the current model name at runtime
    You can now get the name of the current model at runtime using Prisma.getExtensionContext(this).name. You might use this to write out the model name to a log, to send the name to another service, or to branch your code based on the model. You can learn more about this in our docs.

  2. Improved type safety when defining custom model methods
    Prisma Client now provides a set of type utilities that tap into input and output types. They are fully dynamic, which means they adapt to any given model and schema. You can use them to improve your custom model methods' auto-completion. This is especially useful in shared extensions. Learn more about this in our docs.

Let us know what you think in this GitHub issue and in case you run into any issues, please create a bug report.

Introspection and Migration engine improvements

In this release, we moved the Introspection Engine (responsible for prisma db pull) which the Migration Engine will now serve. Previously, the Introspection Engine was stand-alone.

Let us know what you think in this GitHub issue and in case you run into any issues, please create a bug report.

MongoDB WriteConflict bug fix

This version also comes with a notable bug fix: In our MongoDB provider, any queries that are returned with a WriteConflict error Prisma now will retry the query, similar to how other MongoDB drivers and clients do.

Prisma plugin for JetBrains IDEs

If you are using a JetBrains IDE the team over at JetBrains recently released an official Prisma plugin in their Plugin Marketplace.

Thank you, @JetBrains, for working on this! Next to our VS Code extension for Prisma and our general language server, which works in many editors, most relevant editors should now be covered.

Accelerate (Early Access)

We鈥檙e thrilled to announce Early Access to Accelerate.

Accelerate is a global database cache. It is available in 280 locations and has built-in connection pooling for serverless apps. You can make your queries up to 1000 times faster on any Prisma-supported database, reducing your query response times.

Join the waiting list for Accelerate here.

Fixes and improvements

Prisma

Prisma Client

Prisma Migrate

Language tools (e.g. VS Code)

Prisma Engines

Credits

Huge thanks @rintaun, @ivan, @Mini256, @fubhy, @unflxw, @Mosaab-Emam for helping!

馃摵 Join us for another "What's new in Prisma" live stream

Learn 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, January 26 at 5 pm Berlin | 8 am San Francisco.