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 diff
anddb 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 init
needs 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 diff
just crashed. prisma init --datasource-provider=cockroachdb --url ...
sets provider topostgresql
- MongoDB: Add spinner to Introspection
- Remove
--preview-feature
flag for Primitives (migrate diff
anddb 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.