prismock
prismock copied to clipboard
chore(deps): update prisma monorepo to v5.20.0
This PR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence |
---|---|---|---|---|---|
@prisma/client (source) | 5.17.0 -> 5.20.0 |
||||
@prisma/generator-helper (source) | 5.17.0 -> 5.20.0 |
||||
@prisma/internals (source) | 5.17.0 -> 5.20.0 |
||||
prisma (source) | 5.17.0 -> 5.20.0 |
Release Notes
prisma/prisma (@prisma/client)
v5.20.0
🌟 Help us spread the word about Prisma by starring the repo or posting on X about the release. 🌟
Highlights
strictUndefinedChecks
in Preview
With Prisma ORM 5.20.0, the Preview feature strictUndefinedChecks
will disallow any value that is explicitly undefined
and will be a runtime error. This change is direct feedback from this GitHub issue and follows our latest proposal on the same issue.
To demonstrate the change, take the following code snippet:
prisma.table.deleteMany({
where: {
// If `nullableThing` is nullish, this query will remove all data.
email: nullableThing?.property,
}
})
In Prisma ORM 5.19.0 and below, this could result in unintended behavior. In Prisma ORM 5.20.0, if the strictUndefinedChecks
Preview feature is enabled, you will get a runtime error instead:
Invalid \`prisma.user.findMany()\` invocation in
/client/tests/functional/strictUndefinedChecks/test.ts:0:0
XX })
XX
XX test('throws on undefined input field', async () => {
→ XX const result = prisma.user.deleteMany({
where: {
email: undefined
~~~~~~~~~
}
})
Invalid value for argument \`where\`: explicitly \`undefined\` values are not allowed."
We have also introduced the Prisma.skip
symbol, which will allow you to get the previous behavior if desired.
prisma.table.findMany({
where: {
// Use Prisma.skip to skip parts of the query
email: nullableEmail ?? Prisma.skip
}
})
From Prisma ORM 5.20.0 onward, we recommend enabling strictUndefinedChecks
, along with the TypeScript compiler option exactOptionalPropertyTypes
, which will help catch cases of undefined values at compile time. Together, these two changes will help protect your Prisma queries from potentially destructive behavior.
strictUndefinedChecks
will be a valid Preview feature for the remainder of Prisma ORM 5. With our next major version, this behavior will become the default and the Preview feature will be “graduated” to Generally Available.
If you have any questions or feedback about strictUndefinedChecks
, please ask/comment in our dedicated Preview feature GitHub discussion.
typedSql
bug fix
Thank you to everyone who has tried out our typedSql
Preview feature and provided feedback! This release has a quick fix for typescript files generated when Prisma Schema enums had hyphens.
Fixes and improvements
Prisma
-
Prisma incorrectly parses CRDB's FK constraint error as
not available
. -
Invalid TypeScript files created by
generate
when typedSql is enabled and enum contains hyphens. -
@prisma/internals
didn't listts-toolbelt
in dependencies. -
using
$extends
prevents model comments from being passed to TypeScript
Prisma Engines
Credits
Huge thanks to @mcuelenaere, @pagewang0, @key-moon, @pranayat, @yubrot, @thijmenjk, @mydea, @HRM, @haaawk, @baileywickham, @brian-dlee, @nickcarnival, @eruditmorina, @nzakas, and @gutyerrez for helping!
v5.19.1
Today, we are issuing the 5.19.1
patch release.
What's Changed
We've fixed the following issues:
- https://github.com/prisma/prisma/issues/25103
- https://github.com/prisma/prisma/issues/25137
- https://github.com/prisma/prisma/issues/25104
- https://github.com/prisma/prisma/issues/25101
Full Changelog: https://github.com/prisma/prisma/compare/5.19.0...5.19.x, https://github.com/prisma/prisma-engines/compare/5.19.0...5.19.x
v5.19.0
Today, we are excited to share the 5.19.0
stable release 🎉
🌟 Help us spread the word about Prisma by starring the repo or posting on X about the release. 🌟
Highlights
Introducing TypedSQL
TypedSQL is a brand new way to interact with your database from Prisma Client. After enabling the typedSql
Preview feature, you’re able to write SQL queries in a new sql
subdirectory of your prisma
directory. These queries are then checked by Prisma during using the new --sql
flag of prisma generate
and added to your client for use in your code.
To get started with TypedSQL:
-
Make sure that you have the latest version of
prisma
and@prisma/client
installed:npm install -D prisma@latest npm install @​prisma/client@latest
-
Enable the
typedSql
Preview feature in your Prisma Schema.generator client { provider = "prisma-client-js" previewFeatures = ["typedSql"] }
-
Create a
sql
subdirectory of yourprisma
directory.mkdir -p prisma/sql
-
You can now add
.sql
files to thesql
directory! Each file can contain one sql query and the name must be a valid JS identifier. For this example, say you had the filegetUsersWithPosts.sql
with the following contents:SELECT u.id, u.name, COUNT(p.id) as "postCount" FROM "User" u LEFT JOIN "Post" p ON u.id = p."authorId" GROUP BY u.id, u.name
-
Import your SQL query into your code with the
@prisma/client/sql
import:import { PrismaClient } from '@​prisma/client' import { getUsersWithPosts } from '@​prisma/client/sql' const prisma = new PrismaClient() const usersWithPostCounts = await prisma.$queryRawTyped(getUsersWithPosts) console.log(usersWithPostCounts)
There’s a lot more to talk about with TypedSQL. We think that the combination of the high-level Prisma Client API and the low-level TypedSQL will make for a great developer experience for all of our users.
To learn more about behind the “why” of TypedSQL be sure to check out our announcement blog post.
For docs, check out our new TypedSQL section.
Bug fixes
Driver adapters and D1
A few issues with our driverAdapters
Preview feature and Cloudflare D1 support were resolved via https://github.com/prisma/prisma-engines/pull/4970 and https://github.com/prisma/prisma/pull/24922
- Mathematic operations such as
max
,min
,eq
, etc in queries when using Cloudflare D1. - Resolved issues when comparing
BigInt
IDs whenrelationMode="prisma"
was enabled and Cloudflare D1 was being used.
Joins
-
https://github.com/prisma/prisma/issues/23742 fixes Prisma Client not supporting deeply nested
some
clauses when therelationJoins
Preview feature was enabled.
Join us
Looking to make an impact on Prisma in a big way? We're now hiring engineers for the ORM team!
- Senior Engineer (TypeScript): This person will be primarily working on the TypeScript side and evolving our Prisma client. Rust knowledge (or desire to learn Rust) is a plus.
-
Senior Engineer (Rust): This person will be focused on the
prisma-engines
Rust codebase. TypeScript knowledge (or, again, a desire to learn) is a plus.
Credits
Huge thanks to @mcuelenaere, @pagewang0, @Druue, @key-moon, @Jolg42, @pranayat, @ospfranco, @yubrot, @skyzh for helping!
v5.18.0
🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟
Highlights
Native support for UUIDv7
Previous to this release, the Prisma Schema function uuid()
did not accept any arguments and created a UUIDv4 ID. While sufficient in many cases, UUIDv4 has a few drawbacks, namely that it is not temporally sortable.
UUIDv7 attempts to resolve this issue, making it easy to temporally sort your database rows by ID!
To support this, we’ve updated the uuid()
function in Prisma Schema to accept an optional, integer argument. Right now, the only valid values are 4
and 7
, with 4
being the default.
model User {
id String @​id @​default(uuid()) // defaults to 4
name String
}
model User {
id String @​id @​default(uuid(4)) // same as above, but explicit
name String
}
model User {
id String @​id @​default(uuid(7)) // will use UUIDv7 instead of UUIDv4
name String
}
Bug squashing
We’ve squashed a number of bugs this release, special thanks to everyone who helped us! A few select highlights are:
-
SQLite db will now be created and read from the correct location when using
prismaSchemaFolder
. -
Empty
Json[]
fields will now return[]
instead ofnull
when accessed through a join using therelationJoins
Preview feature.
Fixes and improvements
Prisma
Language tools (e.g. VS Code)
Credits
Huge thanks to @mcuelenaere, @pagewang0, @Druue, @key-moon, @Jolg42, @pranayat, @ospfranco, @yubrot, @skyzh, @haaawk for helping!
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
- [ ] If you want to rebase/retry this PR, check this box
This PR was generated by Mend Renovate. View the repository job log.