3.13.0
Today, we are excited to share the 3.13.0 stable release 🎉
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Major improvements
migrate diff and db execute are now Generally Available!
We released two new Preview CLI commands in version 3.9.0 – prisma migrate diff and prisma db execute – to enable our users to create and understand migrations and build their workflows using the commands.
We're proud to announce that the commands are now Generally Available and can now be used without the --preview-feature flag. 🎉
The prisma migrate diff command creates a diff of your database schema, Prisma schema file, or the migration history. All you have to do is feed the command with a schema from state and a schema to state to get an SQL script or human-readable diff.
In addition to prisma migrate diff, prisma db execute is used to execute SQL scripts against a database. You can directly execute prisma migrate diff's output using prisma db execute --stdin.
Both commands are non-interactive, so it's possible to build many new workflows such as forward and backward migrations with some automation tooling. Take a look at our documentation to learn some of the popular workflows these commands unlock:
- Fixing failed migrations
- Squashing migrations
- Generating down migrations
- Command reference for
migrate diffanddb execute
Let us know what tools, automation, and scripts you build using these commands.
SQL Server index clustering (Preview)
In version 3.5.0, we introduced the extendedIndexes Preview feature which we have constantly been adding new configuration options for indexes. In this release, we added support for enabling or disabling index/constraint clustering in SQL Server.
By default, indexes will be clustered by default. You can update this in your schema as follows to disable index clustering:
datasource db {
provider = "sqlserver"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
previewFeatures = ["extendedIndexes"]
}
model Post {
id Int @default(autoincrement()) @id(clustered: false)
title String
content String?
}
The following SQL will be generated in your migration when you run prisma migrate dev
CREATE TABLE [Post] (
id INT NOT NULL,
[title] VARCHAR(255) NOT NULL,
[content] NVARCHAR(1000),
CONSTRAINT [Post_pkey] PRIMARY KEY NONCLUSTERED (id)
)If you've enabled the extendedIndexes Preview feature, this is potentially a breaking change. Refer to our documentation to learn how you can upgrade from a previous version.
Updated native types for CockroachDB (Preview)
We have revamped the native types available in the CockroachDB connector. We initially re-used the PostgreSQL native types because they were close enough, but we have now adapted our list of the supported native types to match what CockroachDB supports.
If you are already using CockroachDB in your project, you can run prisma db pull to update all the native types in your Prisma schema. Refer to our documentation for the complete list of all CockroachDB native types.
OpenSSL 3.0 Support
We're excited to announce that version 3.13.0 now supports OpenSSL 3.0. Operating systems such as Ubuntu 22.04 default to OpenSSL 3.0, and when running prisma generate, you would run into the following error:
Error: Unknown binaryTarget debian-openssl-3.0.x
If you've run into a similar error, bump up to the latest Prisma version and give it another try!
Fixes and improvements
Prisma Client
- Support OpenSSL 3.0
- Create a test factory for newer and cleaner tests
- Invalid Binary Target for OpenSSL V3 on CentOS Stream 9
- thread 'tokio-runtime-worker' panicked at 'not yet implemented'
Prisma
prisma initneeds CockroachDB in the providers list- db execute: confusing error message when doing
DROP DATABASE "test-doesnotexists;"says thatDatabase postgres.public does not exist - [Diff] Always error if path to Sqlite db is wrong or db does not exist
- CockroachDB: Change the integer native types to the idiomatic ones
- CockroachDB: use idiomatic native types
- Prisma
migrate diffjust crashed. prisma init --datasource-provider=cockroachdb --url ...sets provider topostgresql- MongoDB: Add spinner to Introspection
- Remove
--preview-featureflag for Primitives (migrate diffanddb execute) - "reportFailedMessage" is never displayed in case a panic error fails to be submitted to the reporting service
- Support defining index clustering
- MongoDB: Invalid relation does not throw validation error
Language tools (e.g. VS Code)
- Rework auto completion tests
- Internal: For PR / branches it would be great to have an easy way to test the VS Code extension
Prisma Engines
Credits
Huge thanks to @ever0de, @jacobhq, @dkantereivin, @CommanderRoot for helping!
💼 We're hiring!
If you're interested in joining our growing team to help empower developers to build data-intensive applications, Prisma is the place for you.
We're looking for a Technical Support Engineer and Senior Software 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 28 at 5 pm Berlin | 8 am San Francisco.