Closed renovate[bot] closed 1 year ago
This PR was not deployed automatically as @renovate[bot] does not have access to the Railway project.
In order to get automatic PR deploys, please add @renovate[bot] to the project inside the project settings page.
This PR contains the following updates:
~4.16.2
->~5.0.0
Release Notes
prisma/prisma (@prisma/generator-helper)
### [`v5.0.0`](https://togithub.com/prisma/prisma/releases/tag/5.0.0) [Compare Source](https://togithub.com/prisma/prisma/compare/4.16.2...5.0.0) We’re excited to share the `5.0.0` release today 🎉 Prisma `5.0.0` contains a lot of changes that improve Prisma’s performance, especially in serverless environments. If you want to learn more about the performance improvements, we wrote a blog post that sums up all the changes we made: [Prisma 5: Faster by Default](https://www.prisma.io/blog/prisma-5-f66prwkjx72s). As this is a major release, it includes a few breaking changes that might affect a small group of our users. Before upgrading, we recommend that you check out our [upgrade guide](https://www.prisma.io/docs/guides/upgrade-guides/upgrading-versions/upgrading-to-prisma-5) to understand the impact on your application. 🌟 **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.0.0%20%F0%9F%9A%80%0D%0A%0D%0Ahttps://github.com/prisma/prisma/releases/tag/5.0.0) about the release.** 🌟 ### Highlights Here’s a summary of the changes: - Preview features moved to General Availability - `jsonProtocol`: improves communication between Prisma Client and the query engine, makes Prisma faster by default. - `fieldReference`: adds support for comparing columns of the same table. - `extendedWhereUnique`: adds support for non-unique columns inside `where` clauses for queries that operate on unique records. - General improvements and breaking changes - Dependency version changes - Minimum Node.js version change to 16.13.0 - Minimum TypeScript version change to 4.7 - Minimum PostgreSQL version change to 9.6 - Prisma Client embedded SQLite version upgrade to 3.41.2 - Main Changes - Removal of `rejectOnNotFound` property - Removal of some array shortcuts - `cockroachdb` provider is now required when connecting to a CockroachDB database - Removed `runtime/index.js` from the generated Prisma Client - Other Changes - Removal of deprecated flags in the Prisma CLI - Removal of the `beforeExit` hook from the library engine - Removal of deprecated `prisma2` executable - Removal of deprecated `experimentalFeatures` generator property in the Prisma schema - Renamed `migration-engine` to `schema-engine` #### A JSON-based protocol that improves Prisma’s performance We’re thrilled to announce that the `jsonProtocol` Preview feature is now Generally Available. You can now remove the Preview feature flag from your schema after upgrading. We made the JSON-based wire protocol the **default protocol** used for communication between Prisma Client and the query engine. We introduced this feature in version [4.11.0](https://togithub.com/prisma/prisma/releases/tag/4.11.0) to improve Prisma’s performance. Previously, Prisma used a GraphQL-like protocol to communicate between Prisma Client and the query engine. Applications with larger schemas had higher CPU and memory consumption compared to smaller schemas which created a performance bottleneck. The JSON-based wire protocol improves efficiency when Prisma Client is communicating with the query engine. ##### Removal of array shortcuts We took the opportunity to remove some array shortcuts to make our typings more consistent and logical. These shortcuts were a way to add a single element as a value to an array-based operator instead of wrapping a single element in an array. We will now require array values for the following: - `OR` operator shortcuts - `in` and `notIn` operator shortcuts - PostgreSQL JSON `path` field shortcut - Scalar list shortcuts - MongoDB Composite types list shortcuts Here’s an example query using the `OR` operator shortcut for a single element; ```diff await prisma.user.findMany({ where: { - OR: { email: 'alice@prisma.io' } + OR: [{ email: 'alice@prisma.io' }] } }) ``` We recommend taking a look at the [upgrade guide](https://www.prisma.io/docs/guides/upgrade-guides/upgrading-versions/upgrading-to-prisma-5#removal-of-array-shortcuts#removal-of-array-shortcuts) to learn how you can update your queries to work in Prisma 5. #### Support for comparing multiple columns We’re excited to announce that the `fieldReference` Preview feature is now stable and Generally Available. This means you can use this feature without the Preview feature flag in your Prisma schema. We first introduced this feature in [4.5.0](https://togithub.com/prisma/prisma/releases/tag/4.5.0) to add the ability to compare columns on the same table. For example, the following query returns records where the `quantity` value is less than the `warnQuantity` of a product: ```tsx await prisma.product.findMany({ where: { quantity: { lte: prisma.product.fields.warnQuantity } }, }) ``` To learn more about this feature, refer to our [documentation](https://www.prisma.io/docs/reference/api-reference/prisma-client-reference#compare-columns-in-the-same-table). #### Support for filtering non-unique columns in queries for a unique record We’re excited to announce the `extendedWhereUnique` Preview feature is now Generally Available. This means you can use the feature without the Preview feature flag in the Prisma schema. We first introduced this feature in version 4.5.0 to add support for non-unique columns inside `where` clauses for queries that operate on unique records, such as `findUnique`, `update`, and `delete`, which was previously not possible. For example, consider the following model: ```prisma model Article { id Int @id @default(autoincrement()) content String version Int } ``` You can filter on non-unique columns such as the `version` field as follows: ```tsx await prisma.article.findUnique({ where: { id: 5, version: 1 // filter on the `version` field was not available before Prisma 4.5.0 }, }); ``` To learn more about this feature, refer to our [documentation](https://www.prisma.io/docs/reference/api-reference/prisma-client-reference#filter-on-non-unique-fields-with-userwhereuniqueinput). #### Minimum Node.js version change to 16.13.0 The minimum version of Node.js Prisma supports is `16.13.0`. If you're using an earlier version of Node.js, you will need to upgrade your Node.js version. Refer to our [system requirements](https://www.prisma.io/docs/reference/system-requirements) for the minimum versions Prisma requires. #### Minimum TypeScript version change to 4.7 The minimum version of TypeScript Prisma supports is 4.7. If your project is using an earlier version of TypeScript, you will need to upgrade your TypeScript version. Refer to our [system requirements](https://www.prisma.io/docs/reference/system-requirements) for the minimum versions Prisma requires. #### Minimum PostgreSQL version change to 9.6 The minimum version of PostgreSQL Prisma supports is version 9.6. If you’re either using 9.4 or 9.5, you will need to update your PostgreSQL version to at least 9.6. Refer to our [system requirements](https://www.prisma.io/docs/reference/database-reference/supported-databases) for the minimum database versions Prisma requires. #### Prisma Client embedded SQLite version upgrade We upgraded the embedded version of SQLite from 3.35.4 to 3.41.2. We do not anticipate any breaking changes or changes needed in projects using SQLite. However, if you’re using SQLite, especially with raw queries that might go beyond Prisma's functionality, make sure to check [the SQLite changelog](https://www.sqlite.org/changes.html). #### Removal of `rejectOnNotFound` property In version 5.0.0, we removed the `rejectOnNotFound` parameter from Prisma Client that was deprecated in version 4.0.0. We removed this feature to provide better type-safety using the `findUniqueOrThrow` and `findFirstOrThrow` methods as well have a consistent API. If you are using the `rejectOnNotFound` parameter we recommend either: - Replacing your queries with the `findFirstOrThrow` or `findUniqueOrThrow` methods if enabled at a *query-level* - Using a [Prisma Client extension](https://www.prisma.io/docs/concepts/components/prisma-client/client-extensions) to overload the `findFirstOrThrow` and `findUniqueOrThrow` model methods with your custom error handling if enabled at the *client-level* We recommend taking a look at the [upgrade guide](https://www.prisma.io/docs/guides/upgrade-guides/upgrading-versions/upgrading-to-prisma-5#removal-of-array-shortcuts#removal-of-rejectonnotfound-parameter) for more information on how to adapt your application if you’re using `rejectOnNotFound`. #### `cockroachdb` provider is now required when connecting to a CockroachDB database Prior to adding explicit support for CockroachDB with the `cockroachdb` provider in [3.9.0](https://togithub.com/prisma/prisma/releases/tag/3.9.0), it was possible to use the PostgreSQL provider when working with CockroachDB databases. We’re now making it mandatory to use the CockroachDB connector when working with CockroachDB databases. CockroachDB and PostgreSQL have a few differences such as the available native types which impact the generated migrations. If you were using the PostgreSQL connector to work with CockroachDB, take a look at the [upgrade guide](https://www.prisma.io/docs/guides/upgrade-guides/upgrading-versions/upgrading-to-prisma-5#cockroachdb-provider-is-now-required-when-connecting-to-a-cockroachdb-database) to learn how you can update your connector. #### Removal of the generated `runtime/index.js` file from Prisma Client With Prisma 5, we removed the `runtime/index.js` file from Prisma Client. If you were using APIs from `runtime/index.js`, such as `Decimal` , `PrismaClientKnownRequestError`, `NotFoundError`, `PrismaClientUnknownRequestError`, we recommend updating your imports: ```diff - import { Decimal } from '@prisma/client/runtime' + import { Prisma } from '@prisma/client' // Usage update of Prisma Client's utilities - Decimal + Prisma.Decimal ``` We recommend taking a look at the [upgrade guide](https://www.prisma.io/docs/guides/upgrade-guides/upgrading-versions/upgrading-to-prisma-5#removal-of-array-shortcuts#removal-of-runtimeindexjs-from-generated-client) to learn how you can migrate to Prisma 5 #### Removal of the `beforeExit` hook from the `library` query engine We removed the `beforeExit` hook from the default `library` Query Engine. We recommend using the built-in Node.js exit events. ```diff -prisma.$on('beforeExit', () => { /* your code */ }) // Replacements process.on('beforeExit', () => { /* your code */ }) process.on('exit', exitHandler) process.on('SIGINT', exitHandler) process.on('SIGTERM', exitHandler) process.on('SIGUSR2', exitHandler) ``` We recommend taking a look at the [upgrade guide](https://www.prisma.io/docs/guides/upgrade-guides/upgrading-versions/upgrading-to-prisma-5#removal-of-the-beforeexit-hook-from-the-library-engine) to learn how you can migrate to Prisma 5. #### Removal of deprecated `prisma2` executable When we released Prisma 2, the `prisma2` executable was used to differentiate it from Prisma 1. In a later release, the `prisma2` CLI took over the `prisma` executable name. The `prisma2` executable has been deprecated for a while and will now be removed. If you’re using `prisma2` in your scripts, replace it with `prisma`. #### Removal of deprecated flags in the Prisma CLI We removed the following deprecated flags in the Prisma CLI: - **`--preview-feature`**: used in the `prisma db execute`, `prisma db seed`, and `prisma migrate diff` commands - **`--experimental`** and **`--early-access-feature`**: used in the `prisma migrate` commands such as `prisma migrate dev` - **`--force`**: for `prisma db push`. The `--force` flag was replaced by `--accept-data-loss` in version 2.17.0 - **`--experimental-reintrospection`** and **`--clean`**: for `prisma db pull` In the event you’re using one of these flags, we recommend removing the flags. #### Removal of deprecated `experimentalFeatures` generator property In this release, we removed the `experimentalFeatures` property that used to be in the generator property in the Prisma schema but has been renamed to `previewFeatures` for a long time now. If you’re still using this property, you can either manually rename it to `previewFeatures` or use the VS Code action to rename it if you’re using the latest version of the Prisma VS Code extension. #### Renamed `migration-engine` to `schema-engine` In this release, we renamed the `migration-engine`, responsible for running introspection and migration commands, to `schema-engine` . For the majority of our users, no changes will be required. However, if you explicitly include or exclude the engine files you will need to update your code references. Refer to the [upgrade guide](https://www.prisma.io/docs/guides/upgrade-guides/upgrading-versions/upgrading-to-prisma-5#migration-engine-renamed-to-schema-engine) for more information. #### Fixes and improvements ##### Prisma Client - [Getting a string '(array)' in the generator config instead of the expected value when array is used](https://togithub.com/prisma/prisma/issues/9511) - [Misleading error message from `create` call](https://togithub.com/prisma/prisma/issues/11425) - [Client extensions incorrect typings when defined both specific model and all models methods](https://togithub.com/prisma/prisma/issues/17458) - [UncheckedUpdateManyInput types lead to conflicting names](https://togithub.com/prisma/prisma/issues/18534) - [`Configuration
📅 Schedule: Branch creation - "every weekend" in timezone Australia/Melbourne, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ 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 this update again.
This PR has been generated by Mend Renovate. View repository job log here.