prisma/prisma (@prisma/client)
### [`v5.16.0`](https://togithub.com/prisma/prisma/releases/tag/5.16.0)
[Compare Source](https://togithub.com/prisma/prisma/compare/5.15.1...5.16.0)
🌟 **Help us spread the word about Prisma by starring the repo or [tweeting](https://twitter.com/intent/tweet?text=Check%20out%20the%20latest%20@prisma%20release%20v5.16.0%20%F0%9F%9A%80%0D%0A%0D%0Ahttps://github.com/prisma/prisma/releases/tag/5.16.0) about the release.** 🌟
##### **Highlights**
##### Omit model fields globally
With Prisma ORM 5.16.0 we’re more than happy to announce that we’re expanding the `omitApi` Preview feature to also include the ability to **omit fields globally**.
When the Preview feature is enabled, you’re able to define fields to omit when instantiating Prisma Client.
```tsx
const prisma = new PrismaClient({
omit: {
user: {
// make sure that password is never queried.
password: true,
},
},
});
```
You’re also able to omit fields from multiple models and multiple fields from the same model
```tsx
const prisma = new PrismaClient({
omit: {
user: {
// make sure that password and internalId are never queried.
password: true,
internalId: true,
},
post: {
secretkey: true,
},
},
});
```
With both local and global `omit`, you now have the flexibility to completely remove sensitive fields while also tailoring individual queries. If you need the ability to generally omit a field except in a specific query, you can also overwrite a global omit locally
```tsx
const prisma = new PrismaClient({
omit: {
user: {
// password is omitted globally.
password: true,
},
},
});
const userWithPassword = await prisma.user.findUnique({
omit: { password: false }, // omit now false, so password is returned
where: { id: 1 },
});
```
##### Changes to `prismaSchemaFolder`
In `5.15.0` we released the `prismaSchemaFolder` Preview feature, allowing you to create multiple Prisma Schema files in a `prisma/schema` directory. We’ve gotten [a lot of great feedback](https://togithub.com/prisma/prisma/discussions/24413) and are really excited with how the community has been using the feature.
To continue improving our multi-file schema support, **we have a few breaking changes** to the `prismaSchemaFolder` feature:
- When using relative paths in Prisma Schema files with the `prismaSchemaFolder` feature, a path is now relative to the file it is defined in rather than relative to the `prisma/schema` folder. This means that if you have a generator block in `/project/prisma/schema/config/generator.prisma` with an `output` of `./foo` the output will be resolved to `/project/prisma/schema/config/foo` rather than `/project/prisma/foo`. The path to a SQLite file will be resolved in the same manner.
- We realized that during migration many people would have `prisma/schema` as well as `prisma/schema.prisma`. Our initial implementation looked for a `.prisma` file first and would ignore the `schema` folder if it exists. This is now an error.
##### Changes to `fullTextSearch`
In order to improve our full-text search implementation **we have made a breaking change** to the `fullTextSearch` Preview feature.
Previously, when the feature was enabled we updated the `OrderByWithRelationInput` TypeScript type with the `OrderByWithRelationAndSearchRelevanceInput` type. However, we have noted that there are no cases where relational ordering is needed but search relevance is not. Thus, we have decided to remove the `OrderByWithRelationAndSearchRelevanceInput` naming and only use the `OrderByWithRelationInput` naming.
##### Fixes and improvements
##### Prisma
- [Wrong Parameterized Types Sent for SQL Server Queries](https://togithub.com/prisma/prisma/issues/17565)
- [`Prisma has no exported member named OrderByWithRelationInput. Did you mean OrderByWithAggregationInput?`](https://togithub.com/prisma/prisma/issues/21017)
- [\[Driver Adapters\]: missing provider compatibility validation](https://togithub.com/prisma/prisma/issues/21864)
- [Disable "Start using Prisma Client" hint logs on `prisma generate`](https://togithub.com/prisma/prisma/issues/22513)
- [Deploying prisma to CloudFlare pages using Nuxt/Nitro and node-postgres (pg) is using the wrong(vercel) wasm path](https://togithub.com/prisma/prisma/issues/23500)
- [`@prisma/adapter-pg` modifies node-postgres global type parsers](https://togithub.com/prisma/prisma/issues/23505)
- [@prisma/adapter-d1 is failing with an import error when called inside vitest tests](https://togithub.com/prisma/prisma/issues/23911)
- [`db pull` fails with `[libs\user-facing-errors\src\quaint.rs:136:18] internal error: entered unreachable code` on invalid credentials](https://togithub.com/prisma/prisma/issues/24268)
##### Language tools (e.g. VS Code)
- [Make prisma-fmt logs to work with language server](https://togithub.com/prisma/language-tools/issues/1193)
- [Spans and positions get shifted out of sync when schema includes multibyte characters](https://togithub.com/prisma/language-tools/issues/1308)
- [VSCode extension panics when opening an empty prisma schema](https://togithub.com/prisma/language-tools/issues/1760)
##### Prisma Engines
- [\[DA\]Â Planetscale engine tests: one2m_mix_required_writable_readable](https://togithub.com/prisma/prisma-engines/issues/4482)
- [\[DA\]Â Planetscale engine tests: apply_number_ops](https://togithub.com/prisma/prisma-engines/issues/4485)
##### Credits
Huge thanks to [@key-moon](https://togithub.com/key-moon), [@pranayat](https://togithub.com/pranayat), [@yubrot](https://togithub.com/yubrot), [@skyzh](https://togithub.com/skyzh), [@brian-dlee](https://togithub.com/brian-dlee), [@mydea](https://togithub.com/mydea), [@nickcarnival](https://togithub.com/nickcarnival), [@eruditmorina](https://togithub.com/eruditmorina), [@nzakas](https://togithub.com/nzakas), [@gutyerrez](https://togithub.com/gutyerrez), [@avallete](https://togithub.com/avallete), [@ceddy4395](https://togithub.com/ceddy4395), [@Kayoshi-dev](https://togithub.com/Kayoshi-dev), [@yehonatanz](https://togithub.com/yehonatanz) for helping!
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, 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 has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
5.15.1
->5.16.0
5.15.1
->5.16.0
Release Notes
prisma/prisma (@prisma/client)
### [`v5.16.0`](https://togithub.com/prisma/prisma/releases/tag/5.16.0) [Compare Source](https://togithub.com/prisma/prisma/compare/5.15.1...5.16.0) 🌟 **Help us spread the word about Prisma by starring the repo or [tweeting](https://twitter.com/intent/tweet?text=Check%20out%20the%20latest%20@prisma%20release%20v5.16.0%20%F0%9F%9A%80%0D%0A%0D%0Ahttps://github.com/prisma/prisma/releases/tag/5.16.0) about the release.** 🌟 ##### **Highlights** ##### Omit model fields globally With Prisma ORM 5.16.0 we’re more than happy to announce that we’re expanding the `omitApi` Preview feature to also include the ability to **omit fields globally**. When the Preview feature is enabled, you’re able to define fields to omit when instantiating Prisma Client. ```tsx const prisma = new PrismaClient({ omit: { user: { // make sure that password is never queried. password: true, }, }, }); ``` You’re also able to omit fields from multiple models and multiple fields from the same model ```tsx const prisma = new PrismaClient({ omit: { user: { // make sure that password and internalId are never queried. password: true, internalId: true, }, post: { secretkey: true, }, }, }); ``` With both local and global `omit`, you now have the flexibility to completely remove sensitive fields while also tailoring individual queries. If you need the ability to generally omit a field except in a specific query, you can also overwrite a global omit locally ```tsx const prisma = new PrismaClient({ omit: { user: { // password is omitted globally. password: true, }, }, }); const userWithPassword = await prisma.user.findUnique({ omit: { password: false }, // omit now false, so password is returned where: { id: 1 }, }); ``` ##### Changes to `prismaSchemaFolder` In `5.15.0` we released the `prismaSchemaFolder` Preview feature, allowing you to create multiple Prisma Schema files in a `prisma/schema` directory. We’ve gotten [a lot of great feedback](https://togithub.com/prisma/prisma/discussions/24413) and are really excited with how the community has been using the feature. To continue improving our multi-file schema support, **we have a few breaking changes** to the `prismaSchemaFolder` feature: - When using relative paths in Prisma Schema files with the `prismaSchemaFolder` feature, a path is now relative to the file it is defined in rather than relative to the `prisma/schema` folder. This means that if you have a generator block in `/project/prisma/schema/config/generator.prisma` with an `output` of `./foo` the output will be resolved to `/project/prisma/schema/config/foo` rather than `/project/prisma/foo`. The path to a SQLite file will be resolved in the same manner. - We realized that during migration many people would have `prisma/schema` as well as `prisma/schema.prisma`. Our initial implementation looked for a `.prisma` file first and would ignore the `schema` folder if it exists. This is now an error. ##### Changes to `fullTextSearch` In order to improve our full-text search implementation **we have made a breaking change** to the `fullTextSearch` Preview feature. Previously, when the feature was enabled we updated the `Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
â™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by Mend Renovate. View repository job log here.