Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(deps): update prisma monorepo to v5 (major) #8891

Merged
merged 2 commits into from
Jul 13, 2023

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jul 12, 2023

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@prisma/client (source) 4.16.2 -> 5.0.0 age adoption passing confidence
@prisma/internals (source) 4.16.2 -> 5.0.0 age adoption passing confidence
prisma (source) 4.16.2 -> 5.0.0 age adoption passing confidence

Release Notes

prisma/prisma (@​prisma/client)

v5.0.0

Compare Source

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.

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 to understand the impact on your application.

🌟 Help us spread the word about Prisma by starring the repo or tweeting 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 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;

await prisma.user.findMany({
  where: {
-    OR: { email: 'alice@prisma.io' }
+    OR: [{ email: 'alice@prisma.io' }]
  }
})

We recommend taking a look at the upgrade guide 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 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:

await prisma.product.findMany({
  where: { 
		quantity: { lte: prisma.product.fields.warnQuantity } 
	},
})

To learn more about this feature, refer to our documentation.

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:

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:

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.

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 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 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 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.

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 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 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, 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 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:

- 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 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.

-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 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 for more information.

Fixes and improvements
Prisma Client
Prisma Migrate
Language tools (e.g. VS Code)
Credits

Huge thanks to @​michaelpoellath, @​RobertCraigie, @​Coder246, @​RDIL, @​oohwooh, @​rqres, @​zhiyan114, @​spudly, @​hayes, @​boennemann, @​DongGunYoon for helping!

📺 Join us for another "What's new in Prisma" live stream

Learn about the latest release and other news from the Prisma community by joining us for another "What's new in Prisma" live stream.

The stream takes place on YouTube on Thursday, July 13 at 5 pm Berlin | 8 am San Francisco.


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.

@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from ddc288e to 6660a55 Compare July 12, 2023 23:26
@jtoar jtoar added the release:breaking This PR is a breaking change label Jul 12, 2023
@jtoar jtoar added this to the next-release milestone Jul 12, 2023
@jtoar jtoar enabled auto-merge (squash) July 12, 2023 23:35
@renovate
Copy link
Contributor Author

renovate bot commented Jul 12, 2023

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

Warning: custom changes will be lost.

@jtoar jtoar merged commit 6512ca9 into main Jul 13, 2023
29 of 33 checks passed
@jtoar jtoar deleted the renovate/major-prisma-monorepo branch July 13, 2023 00:27
@jtoar jtoar modified the milestones: next-release, v6.0.0 Jul 17, 2023
jtoar added a commit that referenced this pull request Jul 17, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@prisma/client](https://www.prisma.io)
([source](https://togithub.com/prisma/prisma)) | [`4.16.2` ->
`5.0.0`](https://renovatebot.com/diffs/npm/@prisma%2fclient/4.16.2/5.0.0)
|
[![age](https://badges.renovateapi.com/packages/npm/@prisma%2fclient/5.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@prisma%2fclient/5.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@prisma%2fclient/5.0.0/compatibility-slim/4.16.2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@prisma%2fclient/5.0.0/confidence-slim/4.16.2)](https://docs.renovatebot.com/merge-confidence/)
|
| [@prisma/internals](https://www.prisma.io)
([source](https://togithub.com/prisma/prisma)) | [`4.16.2` ->
`5.0.0`](https://renovatebot.com/diffs/npm/@prisma%2finternals/4.16.2/5.0.0)
|
[![age](https://badges.renovateapi.com/packages/npm/@prisma%2finternals/5.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/@prisma%2finternals/5.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/@prisma%2finternals/5.0.0/compatibility-slim/4.16.2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/@prisma%2finternals/5.0.0/confidence-slim/4.16.2)](https://docs.renovatebot.com/merge-confidence/)
|
| [prisma](https://www.prisma.io)
([source](https://togithub.com/prisma/prisma)) | [`4.16.2` ->
`5.0.0`](https://renovatebot.com/diffs/npm/prisma/4.16.2/5.0.0) |
[![age](https://badges.renovateapi.com/packages/npm/prisma/5.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/npm/prisma/5.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/npm/prisma/5.0.0/compatibility-slim/4.16.2)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/npm/prisma/5.0.0/confidence-slim/4.16.2)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>prisma/prisma (@&#8203;prisma/client)</summary>

### [`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.

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@&#8203;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:

```groovy
model Article {
  id      Int    @&#8203;id @&#8203;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 '@&#8203;prisma/client/runtime'
+ import { Prisma } from '@&#8203;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)
- [`<Model>RelationFilterInput` does not take nullability into
account](https://togithub.com/prisma/prisma/issues/18585)
- [Full text search query with `OR` broke after opting in to
`jsonProtocol`
feature.](https://togithub.com/prisma/prisma/issues/18885)
- [Prisma Client: remove list shorthands (for
`jsonProtocol`)](https://togithub.com/prisma/prisma/issues/19303)
- [Remove outdated preview feature aliases (transactionApi,
aggregateApi)](https://togithub.com/prisma/prisma/issues/19305)
- [Prisma Client generator: remove creation of a
package.json](https://togithub.com/prisma/prisma/issues/19306)
- [Prisma Client: make `jsonProtocol` GA
](https://togithub.com/prisma/prisma/issues/19310)
- [Only upload engines files to
`binaries.prisma.sh/all_commits/`](https://togithub.com/prisma/prisma/issues/19311)
- [Prisma Client: remove "beforeExit" hook from
LibraryEngine/DataProxyEngine](https://togithub.com/prisma/prisma/issues/19312)
- [Prisma Client: remove
`rejectOnNotFound`](https://togithub.com/prisma/prisma/issues/19315)
- [Prisma Client: remove `runtime/index.js` bundle from
client](https://togithub.com/prisma/prisma/issues/19316)
- [Prisma CLI: remove non-existing `prisma dev`
command](https://togithub.com/prisma/prisma/issues/19318)
- [Prisma Client: remove legacy `photonResolver` and `provider=photonjs`
handling](https://togithub.com/prisma/prisma/issues/19319)
- [Prisma Client: make `fieldReference`
GA](https://togithub.com/prisma/prisma/issues/19379)
- [Prisma Client: make `extendedWhereUnique`
GA](https://togithub.com/prisma/prisma/issues/19380)
- [Remove backward compatibility for Prisma Client < 2.20 and Prisma CLI
>= 2.20](https://togithub.com/prisma/prisma/issues/19417)
- [Prisma CLI: remove `prisma2`
"executable"](https://togithub.com/prisma/prisma/issues/19438)
- [Query in findMany in prisma extends returns a wrong
type](https://togithub.com/prisma/prisma/issues/19854)
- [Can't specify $queryRawUnsafe return type after extending prisma
client](https://togithub.com/prisma/prisma/issues/19862)
- [FindMany returns wrong type after extending prisma
client](https://togithub.com/prisma/prisma/issues/19864)
- [4.16.x cannot wrap `$extend` in factory function when
`compilerOptions.composite` is
`true`](https://togithub.com/prisma/prisma/issues/19866)
- [4.16: (MongoDB) Generated types for list composites are
incorrect](https://togithub.com/prisma/prisma/issues/19880)
- [Prisma Client Extensions: $allModels: { $allOperations } sets `query`
type to `never`](https://togithub.com/prisma/prisma/issues/19888)
- [Prisma Schema Type inside a Type not generating a right
Payload](https://togithub.com/prisma/prisma/issues/19890)
- [Field references are not available on extended
clients](https://togithub.com/prisma/prisma/issues/19892)
- [Prisma Client fluent API does not work with extends anymore on
4.16.1](https://togithub.com/prisma/prisma/issues/19921)
- [Prisma not generating correct payload for types in models for MongoDB
for 4.16.1 ](https://togithub.com/prisma/prisma/issues/19933)
- [Prisma requires to install bun when generating client library
](https://togithub.com/prisma/prisma/issues/19945)
- [Getting wrong types with prisma client
extensions](https://togithub.com/prisma/prisma/issues/19958)
- [Prisma Client: updating to 4.16.0 or 4.16.1 breaks Cloudflare worker,
it errors with `The package "path" wasn't found on the file system but
is built into node`](https://togithub.com/prisma/prisma/issues/19972)
- [Result types are incorrectly inferred when `undefined` explicitly
passed to
`select`/`include`](https://togithub.com/prisma/prisma/issues/19997)
- [Migrating to release: 4.16.2 throws typescript error: "TS1005: '?'
expected".](https://togithub.com/prisma/prisma/issues/20024)

##### Prisma Migrate

- [Make connecting to a cockroachdb database with `provider =
"postgresql"` an error](https://togithub.com/prisma/prisma/issues/13222)
- [Remove the deprecated `experimentalFeatures` generator
property](https://togithub.com/prisma/prisma/issues/16294)
- [Remove support for PostgreSQL 9.4 and
9.5](https://togithub.com/prisma/prisma/issues/19300)
- [Upgrade embedded SQLite
version](https://togithub.com/prisma/prisma/issues/19301)
- [Drop support for Node.js
v14](https://togithub.com/prisma/prisma/issues/19304)
- [`db pull`: Remove the version checker from
introspection](https://togithub.com/prisma/prisma/issues/19314)
- [Prisma CLI: remove undocumented `doctor`
command](https://togithub.com/prisma/prisma/issues/19317)
- [Rename migration-engine to
schema-engine](https://togithub.com/prisma/prisma/issues/19321)
- [Prisma CLI: remove deprecated flags, arguments and "old migrate"
logic](https://togithub.com/prisma/prisma/issues/19448)
- [Remove obsolete `experimentalFeatures` generator
property](https://togithub.com/prisma/prisma/issues/19540)
- [Remove usage / mention of
`experimentalFeatures`](https://togithub.com/prisma/prisma/issues/19541)

##### Language tools (e.g. VS Code)

- [Mark `experimentalFeatures` as
obsolete](https://togithub.com/prisma/language-tools/issues/1435)

##### Credits

Huge thanks to
[@&#8203;michaelpoellath](https://togithub.com/michaelpoellath),
[@&#8203;RobertCraigie](https://togithub.com/RobertCraigie),
[@&#8203;Coder246](https://togithub.com/Coder246),
[@&#8203;RDIL](https://togithub.com/RDIL),
[@&#8203;oohwooh](https://togithub.com/oohwooh),
[@&#8203;rqres](https://togithub.com/rqres),
[@&#8203;zhiyan114](https://togithub.com/zhiyan114),
[@&#8203;spudly](https://togithub.com/spudly),
[@&#8203;hayes](https://togithub.com/hayes),
[@&#8203;boennemann](https://togithub.com/boennemann),
[@&#8203;DongGunYoon](https://togithub.com/DongGunYoon) for helping!

##### 📺 Join us for another "What's new in Prisma" live stream

Learn about the latest release and other news from the Prisma community
by joining us for another ["What's new in
Prisma"](https://youtube.com/playlist?list=PLn2e1F9Rfr6l1B9RP0A9NdX7i7QIWfBa7)
live stream.

The stream takes place [on YouTube](https://youtu.be/6rlKp_eBdZA) on
**Thursday, July 13** at **5 pm Berlin | 8 am San Francisco**.

</details>

---

### 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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/redwoodjs/redwood).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41LjMiLCJ1cGRhdGVkSW5WZXIiOiIzNi41LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Dominic Saadi <dominiceliassaadi@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release:breaking This PR is a breaking change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant