Today, we are excited to share the 2.30.0
stable release 🎉
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
New features & improvements
Full-Text Search for PostgreSQL is now in Preview 🚀
We're excited to announce that Prisma Client now has preview support for Full-Text Search on PostgreSQL.
You can give this a whirl in 2.30.0 by enabling the fullTextSearch
preview flag:
datasource db {
provider = "postgresql"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
previewFeatures = ["fullTextSearch"]
}
model Post {
id Int @id @default(autoincrement())
title String @unique
body String
status Status
}
enum Status {
Draft
Published
}
After you regenerate your client, you'll see a new search
field on your String
fields that you can query on. Here are a few examples:
// returns all posts that contain the words cat *or* dog.
const result = await prisma.post.findMany({
where: {
body: {
search: 'cat | dog',
},
},
})
// All drafts that contain the words cat *and* dog.
const result = await prisma.posts.findMany({
where: {
status: "Draft",
body: {
search: 'cat & dog',
},
},
})
You can learn more about how the query format works in our documentation. We would love to know your feedback! If you have any comments or run into any problems we're available in this in this Github issue.
Validation errors for referential action cycles on Microsoft SQL Server ℹ
Microsoft SQL Server has validation rules for your schema migrations that reject schema changes that introduce referential action cycles.
These scenarios tend to show up often for developers using the referentialActions
preview feature, which will become the default. The database error you get is not really helpful, so to provide a better experience, Prisma now checks for referential cycle actions when it validates your schema file and shows you the exact location of the cycle in your schema.
To learn more, check out the documentation.
prisma introspect
is being deprecated in favor of prisma db pull
👋🏻
The prisma introspect
command is an alias for prisma db pull
so they are the same command. However, prisma db pull
is more intuitive since it pulls the schema from the database into your local schema.prisma
file. This naming also works as the counterpart of prisma db push
.
Starting with this release, you will get a warning that encourages you to use prisma db pull
instead of prisma introspect
.
Prisma Adopts Semantic Versioning (SemVer)
As previously announced, we are adjusting our release policy to adhere more strictly to Semantic Versioning.
In the future, breaking changes in the stable development surface i.e. General Availability will only be rolled out with major version increments.
You can learn more about the change in the announcement blog post.
Fixes and improvements
Prisma Client
- Revisit prisma.$queryRaw("...") vs. prisma.$queryRaw template literal
- Queries that include the count of a relation that has multiple foreign keys translates to incorrect SQL
- Order by Relations with multiple references
- Prisma client crashes when counting m-n self-relation
- Prisma crashes when I use the same table for counting and
findUnique
- Order By Relation with CursorId doesn't return result
- Shows incorrect count number by using selectRelationCount previewFeatures
- JSON number filtering bug
- MDBE: Break down the feature into concrete tasks
- FTS: Integrate into the Prisma Client
- Interactive transactions not working with
$queryRaw
and$executeRaw
in 2.29.0 - Calling
.catch()
or.finally()
on a prisma client model query does not fire the request in 2.29.0
Prisma Migrate
- CLI: Add deprecation notice to prisma introspect (renamed db pull)
- Add Default Constraint Name to PSL for SqlServer
- The server failed to resume the transaction. Desc:3600000005.
- Add DML validation to reject
Bytes
@id
columns with SQL Server - Better error for cyclical referential actions
- Sqlite reserved constraint names cannot be recreated
Language tools (e.g. VS Code)
- Autocomplete does not work for arguments after the first one in
@relation()
- referentialActions: No auto complete for available actions
@prisma/engines npm package
Credits
Huge thanks to @saintmalik for helping!
📺 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, August 26 at 5pm Berlin | 8am San Francisco.