🌟 **Help us spread the word about Prisma by starring the repo or [tweeting](https://twitter.com/intent/tweet?text=Check%20out%20the%20latest%20prisma%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://github.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 `<Model>OrderByWithRelationInput` TypeScript type with the `<Model>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 `<Model>OrderByWithRelationAndSearchRelevanceInput` naming and only use the `<Model>OrderByWithRelationInput` naming.
Fixes and improvements
Prisma
- [Wrong Parameterized Types Sent for SQL Server Queries](https://github.com/prisma/prisma/issues/17565)
- [`Prisma has no exported member named OrderByWithRelationInput. Did you mean OrderByWithAggregationInput?`](https://github.com/prisma/prisma/issues/21017)
- [[Driver Adapters]: missing provider compatibility validation](https://github.com/prisma/prisma/issues/21864)
- [Disable "Start using Prisma Client" hint logs on `prisma generate`](https://github.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://github.com/prisma/prisma/issues/23500)
- [`prisma/adapter-pg` modifies node-postgres global type parsers](https://github.com/prisma/prisma/issues/23505)
- [prisma/adapter-d1 is failing with an import error when called inside vitest tests](https://github.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://github.com/prisma/prisma/issues/24268)
Language tools (e.g. VS Code)
- [Make prisma-fmt logs to work with language server](https://github.com/prisma/language-tools/issues/1193)
- [Spans and positions get shifted out of sync when schema includes multibyte characters](https://github.com/prisma/language-tools/issues/1308)
- [VSCode extension panics when opening an empty prisma schema](https://github.com/prisma/language-tools/issues/1760)
Prisma Engines
- [[DA]Â Planetscale engine tests: one2m_mix_required_writable_readable](https://github.com/prisma/prisma-engines/issues/4482)
- [[DA]Â Planetscale engine tests: apply_number_ops](https://github.com/prisma/prisma-engines/issues/4485)
Credits
Huge thanks to key-moon, pranayat, yubrot, skyzh, brian-dlee, mydea, nickcarnival, eruditmorina, nzakas, gutyerrez, avallete, ceddy4395, Kayoshi-dev, yehonatanz for helping!