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 v6 (major) #116

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented Sep 10, 2021

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@prisma/client (source) 2.30.3 -> 6.2.1 age adoption passing confidence
prisma (source) 2.30.3 -> 6.2.1 age adoption passing confidence

Release Notes

prisma/prisma (@​prisma/client)

v6.2.1

Compare Source

Today we are releasing the 6.2.1 patch release to address an issue with some of the omitApi preview feature checks having been accidentally omitted when making the feature GA. Now it is fully functional without the preview feature flag.

Changes

v6.2.0

Compare Source

Today we're releasing Prisma ORM version 6.2.0 🎉

🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟

We have a number of new features in this version, including support for json and enum fields in SQLite, a new updateManyAndReturn function, support for ULID values, as well as the promotion of the omit feature from Preview to Generally Availability.

Highlights
Excluding fields via omit is now production-ready

Our number one requested feature is out of Preview and Generally Available. In 6.2.0, you no longer need to add omitApi to your list of Preview features:

generator client {
  provider        = "prisma-client-js"
- previewFeatures = ["omitApi"]
}

As a refresher: omit allows you to exclude certain fields from being returned in the results of your Prisma Client queries.

You can either do this locally, on a per-query level:

const result = await prisma.user.findMany({
  omit: {
    password: true,
  },
});

Or globally, to ensure a field is excluded from all queries of a certain model:

const prisma = new PrismaClient({
  omit: {
    user: {
      password: true
    }
  }
})

// The password field is excluded in all queries, including this one
const user = await prisma.user.findUnique({ where: { id: 1 } })

For more information on omit, be sure to check our documentation.

json and enum fields in SQLite

Previous to this version, you could not define json and enum fields in your Prisma schema when using SQLite. The respective GitHub issues have been among the most popular ones in our repo, so with our new approach to open-source governance, we finally got to work and implemented these.

Working with JSON and Enum fields works similarly to other database providers, here’s an example:

datasource db {
  provider = "sqlite"
  url      = "file:./dev.db"
}

model User {
  id   Int    @​id @​default(autoincrement())
  name String
  role Role  
  data Json
}

enum Role {
  Customer
  Admin 
}
Support for auto-generated ULID values

Similar to cuid2 support released in ORM version 6.0.0, we are now adding support for Universally Unique Lexicographically Sortable Identifiers (or short: ULIDs 😄) in version 6.2.0. A ULID value is a 26-character alphanumeric string, e.g. 01GZ0GZ3XARH8ZP44A7TQ2W4ZD.

With this new feature, you can now create records with auto-generated ULID values for String fields:

model User {
  id String @​id @​default(ulid())  
}
New batch function: updateManyAndReturn

updateMany allows you to update many records in your database, but it only returns the count of the affected rows, not the resulting rows themselves. With updateManyAndReturn you are now able to achieve this:

const users = await prisma.user.updateManyAndReturn({
  where: {
    email: {
      contains: 'prisma.io',
    }
  },
  data: {
    role: 'ADMIN'
  }
})

This call to updateManyAndReturn will now return the actual records that have been updated in the query:

[{
  id: 22,
  name: 'Alice',
  email: '[email protected]',
  profileViews: 0,
  role: 'ADMIN',
  coinflips: []
}, {
  id: 23,
  name: 'Bob',
  email: '[email protected]',
  profileViews: 0,
  role: 'ADMIN',
  coinflips: []
}]

Please note that like createManyAndReturn, updateManyAndReturn is only supported in PostgreSQL, CockroachDB, and SQLite.

Fixed runtime error in Node.js v23

While not officially supported, we understand that a lot of you like to be on the latest Node.js version — so we fixed an error that only occurred on Node.js 23. Happy coding ✌️

Prisma is hiring 🤝

Join us at Prisma to work on the most popular TypeScript ORM and other exciting products like the first serverless database built on unikernels!

We currently have two open roles in our Engineering team:

If these don’t fit, you can still check out our jobs page and send a general application.

v6.1.0

Compare Source

Today we're releasing Prisma ORM version 6.1.0

In this version our tracing Preview feature is being graduated to GA!

Highlights
Tracing goes GA

The tracing Preview feature is now stable. You now no longer have to include tracing in your set of enabled preview features.

generator client {
   provider        = "prisma-client-js"
-  previewFeatures = ["tracing"]
}

We have also changed some of the spans generated by Prisma Client. Previously, a trace would report the following spans:

prisma:client:operation
prisma:client:serialize
prisma:engine
prisma:engine:connection
prisma:engine:db_query
prisma:engine:serialize

Now, the following are reported:

prisma:client:operation
prisma:client:serialize
prisma:engine:query
prisma:engine:connection
prisma:engine:db_query
prisma:engine:serialize
prisma:engine:response_json_serialization

Additionally, we have made a few changes to our dependencies:

  • @opentelemetry/api is now a peer dependency instead of a regular dependency
  • registerInstrumentations in @opentelemetry/instrumentation is now re-exported by @prisma/instrumentation

After upgrading to Prisma ORM 6.1.0 you will need to add @opentelemetry/api to your dependencies if you haven't already:

npm install @​opentelemetry/api

You will also no longer need to have @opentelemetry/instrumentation if you only use registerInstrumentations. In this case you can import registerInstrumentations from @prisma/instrumentation

- import { PrismaInstrumentation } from '@​prisma/instrumentation'
+ import { PrismaInstrumentation, registerInstrumentations } from '@​prisma/instrumentation'
Bug fixes
Tracing related

As we're moving our tracing preview to GA, a number of issues have been resolved. Here are a few highlights:

Other issues

We also have a number of other issues that were resolved outside of our tracing feature.

Fixes and improvements
Prisma
Prisma Client

v6.0.1

Compare Source

v6.0.0

Compare Source

We’re excited to share the Prisma ORM v6 release today 🎉

As this is a major release, it includes a few breaking changes that may affect your application. Before upgrading, we recommend that you check out our upgrade guide to understand the impact on your application.

If you want to have an overview of what we accomplished since v5, check out our announcement blog post: Prisma 6: Better Performance, More Flexibility & Type-Safe SQL.

🌟 Help us spread the word about Prisma by starring the repo ☝️ or posting on X about the release.

Breaking changes

⚠️ This section contains a list of breaking changes. If you upgrade your application to Prisma ORM v6 without addressing these, your application is going to break! For detailed upgrade instructions, check out the upgrade guide. ⚠️ 

Minimum supported Node.js versions

The new minimum supported Node.js versions for Prisma ORM v6 are:

  • for Node.js 18 the minimum supported version is 18.18.0
  • for Node.js 20 the minimum supported version is 20.9.0
  • for Node.js 22 the minimum supported version is 22.11.0

There is no official support for Node.js <18.18.0, 19, 21, 23.

Minimum supported TypeScript version

The new minimum supported TypeScript version for Prisma ORM v6 is: 5.1.0.

Schema change for implicit m-n relations on PostgreSQL

If you're using PostgreSQL and are defining implicit many-to-many relations in your Prisma schema, Prisma ORM maintains the relation table for you under the hood. This relation table has A and B columns to represent the tables of the models that are part of this relation.

Previous versions of Prisma ORM used to create a unique index on these two columns. In Prisma v6, this unique index is changing to a primary key in order to simplify for the default replica identity behaviour.

If you're defining implicit m-n relations in your Prisma schema, the next migration you'll create will contain ALTER TABLE statements for all the relation tables that belong to these relations.

Full-text search on PostgreSQL

The fullTextSearch Preview feature is promoted to General Availability only for MySQL. This means that if you're using PostgreSQL and currently make use of this Preview feature, you now need to use the new fullTextSearchPostgres Preview feature.

Usage of Buffer

Prisma v6 replaces the usage of Buffer with Uint8Array to represent fields of type Bytes. Make sure to replace all your occurrences of the Buffer type with the new Uint8Array.

Removed NotFoundError

In Prisma v6, we removed the NotFoundError in favor of PrismaClientKnownRequestError with error code P2025 in findUniqueOrThrow() and findFirstOrThrow(). If you've relied on catching NotFoundError instances in your code, you need to adjust the code accordingly.

New keywords that can't be used as model names: async, await, using

With this release, you can't use async, await and using as model names any more.


⚠️ For detailed upgrade instructions, check out the upgrade guide. ⚠️ 

Preview features promoted to General Availability

In this release, we are promoting a number of Preview features to General Availability.

fullTextIndex

If you use the full-text index feature in your app, you can now remove fullTextIndex from the previewFeatures in your Prisma schema:

generator client {
  provider        = "prisma-client-js"
- previewFeatures = ["fullTextIndex"]
}
fullTextSearch

If you use the full-text search feature with MySQL in your app, you can now remove fullTextSearch from the previewFeatures in your Prisma schema:

generator client {
  provider        = "prisma-client-js"
- previewFeatures = ["fullTextSearch"]
}

If you are using it with PostgreSQL, you need to update the name of the feature flag to fullTextSearchPostgres:

generator client {  
  provider        = "prisma-client-js"
- previewFeatures = ["fullTextSearch"]  
+ previewFeatures = ["fullTextSearchPostgres"]
}
New features

We are also releasing new features with this release:

Company news
🚀 Prisma Postgres is free during Early Access

In case you missed it: We recently launched Prisma Postgres, a serverless database with zero cold starts, a generous free tier, connection pooling, real-time events, and a lot more! It’s entirely free during the Early Access phase, try it now!

✨ Let us know what you think of Prisma ORM

We're always trying to improve! If you've recently used Prisma ORM, we'd appreciate hearing your thoughts about your experience via this 2min survey.

v5.22.0

Compare Source

Today, we are excited to share the 5.22.0 stable release 🎉

🌟 Help us spread the word about Prisma by starring the repo ☝️ or posting on X about the release.

Highlights
Further Tracing Improvements

In our ongoing effort to stabilize the tracing Preview feature, we’ve made our spans compliant with OpenTelemetry Semantic Conventions for Database Client Calls. This should lead to better compatibility with tools such as DataDog and Sentry.

We’ve also included numerous bug fixes that should make this Preview feature easier to work with.

Metrics bug fix

Occasionally, connection pool metrics would become negative or grow unbounded. In this release, connection pool metrics should stay consistent.

Connection Pool Timeout fix

In a specific case, there could be issues where fetching a new connection from the connection pool would time out, regardless of the state of the application and connection pool. If you have experience connection pool issues accessing a PostgreSQL database with TLS encryption in a resource-constrained environment (such as Function-as-a-Service offerings or very small VPS) this should resolve those issues.

Special thanks to @​youxq for their pull request and help resolving this issue!

Join us

Looking to make an impact on Prisma in a big way? We're hiring!

Learn more on our careers page: https://www.prisma.io/careers

Fixes and improvements
Prisma Migrate
Prisma
Credits

Huge thanks to @​tmm1, @​Takur0, @​hinaloe, @​andyjy, and @​youxq for helping!

v5.21.1

Compare Source

  • Fixed a bug where migrations were not using shadow database correctly in some edge cases

v5.21.0

Compare Source

Today, we are excited to share the 5.21.0 release 🎉

🌟 Help us spread the word about Prisma by starring the repo ☝️ or posting on X about the release.

Highlights
Better support for tracing in MongoDB

The tracing Preview feature now has full support for MongoDB with previously missing functionality now implemented. This is a part of the ongoing effort to stabilize this Preview feature and release it in General Availability.

tracing is a Preview feature that enables built-in support for OpenTelemetry instrumentation inside the Prisma Client and provides deep insights into the performance and timing of your queries. See our documentation for more information.

For an easy to use and zero-configuration tracing instrumentation tool with a dashboard that provides an overview of your queries, statistics, and AI-powered recommendations, try Prisma Optimize.

WebAssembly engine size decrease for edge functions

Due to recent changes, some users experienced a steep increase of the bundle size in Prisma 5.20 when using the driverAdapters Preview feature, going over the 1 MB limit on the free tier of Cloudflare Workers. This has now been fixed.

Fixes and improvements
Prisma Engines
Credits

Huge thanks to @​austin-tildei, @​LucianBuzzo, @​mcuelenaere, @​pagewang0, @​key-moon, @​pranayat, @​yubrot, @​skyzh for helping!

v5.20.0

Compare Source

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

Compare Source

Today, we are issuing the 5.19.1 patch release.

What's Changed

We've fixed the following issues:

Full Changelog: prisma/prisma@5.19.0...5.19.x, prisma/prisma-engines@5.19.0...5.19.x

v5.19.0

Compare Source

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:

  1. Make sure that you have the latest version of prisma and @prisma/client installed:

    npm install -D prisma@latest
    npm install @&#8203;prisma/client@latest
    
  2. Enable the typedSql Preview feature in your Prisma Schema.

       generator client {
         provider = "prisma-client-js"
         previewFeatures = ["typedSql"]
       }
    
  3. Create a sql subdirectory of your prisma directory.

    mkdir -p prisma/sql
    
  4. You can now add .sql files to the sql directory! Each file can contain one sql query and the name must be a valid JS identifier. For this example, say you had the file getUsersWithPosts.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
  5. Import your SQL query into your code with the @prisma/client/sql import:

       import { PrismaClient } from '@&#8203;prisma/client'
       import { getUsersWithPosts } from '@&#8203;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 when relationMode="prisma" was enabled and Cloudflare D1 was being used.
Joins

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

Compare Source

🌟 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 @&#8203;id @&#8203;default(uuid()) // defaults to 4
  name String
}

model User {
  id   String @&#8203;id @&#8203;default(uuid(4)) // same as above, but explicit
  name String
}

model User {
  id   String @&#8203;id @&#8203;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:

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!

v5.17.0

Compare Source

🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟

Highlights
VSCode extension improvements

We’re happy to introduce some cool new features that will make your experience with the Prisma VSCode extension even better!

Find references across schema files

The ability to hop between references of a given symbol is really useful in application code and now with the introduction of multi-file schema, we think it’s the perfect time to bring this feature to the VSCode extension!

With the 5.17.0 release, you’ll now have the ability to use the native “find references” feature to find any usage of a given symbol

references

Added context on hover

When hovering over a symbol that references a view, type, enum, or any other block with multiple values, you’ll now see a handy pop out that shows what is in that block at a glance.

image

Additional quick fixes

We’ve taken some fixes made by the prisma format cli command and made them quick fixes available to the VSCode Extension. Now, when you have forget a back relation or relation scalar field, you’ll now see in real time what is wrong and have the option to fix it via the extension.

image (1)

QueryRaw performance improvements

We’ve changed the response format of queryRaw to decrease its average size which reduces serialization CPU overhead.

When querying large data sets, we expect you to see improved memory usage and up to 2x performance improvements.

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

Huge thanks to @​key-moon, @​pranayat, @​yubrot, @​skyzh for helping!

v5.16.2

Compare Source

Today, we are issuing the 5.16.2 patch release to fix an issue in Prisma client.

Fix in Prisma Client

v5.16.1

Compare Source

Today, we are issuing the 5.16.1 patch release to fix an issue in Prisma client.

Fix in Prisma Client

v5.16.0

Compare Source

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

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

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

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 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
Language tools (e.g. VS Code)
Prisma Engines
Credits

Huge thanks to @​key-moon, @​pranayat, @​yubrot, @​skyzh, @​brian-dlee, @​mydea, @​nickcarnival, @​eruditmorina, @​nzakas, @​gutyerrez, @​avallete, @​ceddy4395, @​Kayoshi-dev, @​yehonatanz for helping!

v5.15.1

Compare Source

Today, we are issuing the 5.15.1 patch release.

Fixes in Prisma Client

v5.15.0

Compare Source

Today, we are excited to share the 5.15.0 stable release 🎉

🌟 Help us spread the word about Prisma by starring the repo or tweeting about the release. 🌟

Highlights
Multi-File Prisma Schema support

Prisma ORM 5.15.0 features support for multi-file Prisma Schema in Preview.

This closes a long standing issue and does so in a clean and easy to migrate way.

To get started:

  1. Enable the prismaSchemaFolder Preview feature by including it in the previewFeatures field of your generator.
    datasource db {
      provider = "postgresql"
      url      = env("DATABASE_URL")
    }
    
    generator client {
      provider        = "prisma-client-js"
      previewFeatures = ["prismaSchemaFolder"]
    }
    
  2. Create a schema subdirectory under your prisma directory.
  3. Move your schema.prisma into this directory.

You are now set up with a multi-file Prisma Schema! Add as many or as few .prisma files to the new prisma/schema directory.

When running commands where a Prisma Schema file is expected to be provided, you can now define a Prisma Schema directory. This includes Prisma CLI commands that use the --schema option as well as defining schema via package.json

Our tooling has also been updated to handle multiple Prisma Schema files. This includes our Visual Studio Code extension and tools like database introspection, which will deposit new models in a introspected.prisma file. Existing models will be updated in the file they are found.

To learn more, please refer to our official documentation and announcement blog post. If you try out prismaSchemaFolder, please let us know!

Interesting Bug Fixes
Fix for PostgreSQL prepared statement caching for raw queries

This release fixes a nasty bug with the caching of prepared statements in raw Prisma Client queries that affected PostgreSQL when you ran the same SQL statement with differently typed paramters. This should not fail any more.

Fix for SQL Server introspection of (deprecated) CREATE DEFAULT

Our Introspection logic crashed on encountering certain multi-line CREATE DEFAULT, a deprecated way to define defaults in SQL Server. As many SQL Server users are working with established databases, this happened frequently enough that we now explicitly ignore these defaults instead of crashing.

Fix for Cloudflare D1’s lower parameter limit

Cloudflare’s D1 has a lower parameter limit than local SQLite, which caused bigger queries to fail. We adapted that limit to the D1 default for @prisma/adapter-d1, which will avoid such failures.

Fix for Cloudflare D1’s different PRAGMA support

Our generated migration SQL for SQLite did not always work for Cloudflare D1, because of differences in the supported pragmas. We adapted the SQL to work in both local SQLite and Cloudflare D1.

Fixes and improvements
Prisma Migrate
Prisma Client

Configuration

📅 Schedule: Branch creation - "on saturday" in timezone Asia/Tokyo, 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 was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the renovate label Sep 10, 2021
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from df59b3b to 354d5d2 Compare September 10, 2021 16:27
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from 354d5d2 to 441992b Compare September 21, 2021 15:00
@renovate renovate bot changed the title fix(deps): update prisma monorepo to v3 (major) fix(deps): update prisma monorepo (major) Sep 21, 2021
@renovate renovate bot changed the title fix(deps): update prisma monorepo (major) fix(deps): update prisma monorepo to v3 (major) Sep 21, 2021
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from 441992b to 512a41f Compare September 21, 2021 16:24
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch 2 times, most recently from 1122c2f to 5447965 Compare October 7, 2021 13:29
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from 5447965 to 0144bc1 Compare October 19, 2021 15:09
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch 2 times, most recently from 85e0208 to ea9bb8b Compare November 5, 2021 08:35
@renovate renovate bot changed the title fix(deps): update prisma monorepo to v3 (major) fix(deps): update prisma monorepo (major) Nov 5, 2021
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from ea9bb8b to b715271 Compare November 5, 2021 10:27
@renovate renovate bot changed the title fix(deps): update prisma monorepo (major) fix(deps): update prisma monorepo to v3 (major) Nov 5, 2021
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch 2 times, most recently from 61d4e4b to f0a2b5b Compare November 9, 2021 15:20
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from f0a2b5b to df73c3a Compare November 16, 2021 13:21
@renovate renovate bot changed the title fix(deps): update prisma monorepo to v3 (major) fix(deps): update prisma monorepo (major) Nov 16, 2021
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from df73c3a to 8b5c2c1 Compare November 16, 2021 15:19
@renovate renovate bot changed the title fix(deps): update prisma monorepo (major) fix(deps): update prisma monorepo to v3 (major) Nov 16, 2021
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from 8b5c2c1 to 691b028 Compare November 30, 2021 16:40
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch 2 times, most recently from 8099edb to 137b377 Compare December 28, 2021 14:58
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch 2 times, most recently from 020abba to 4139ccf Compare January 14, 2022 15:56
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch 2 times, most recently from 81c3c0c to 13c237d Compare February 2, 2022 18:13
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from 13c237d to 0ccf4bf Compare February 10, 2022 12:28
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from 0ccf4bf to 61bcde6 Compare February 22, 2022 15:07
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from 61bcde6 to 7b41c15 Compare March 26, 2022 15:29
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch 2 times, most recently from 00b3b3c to 6beced6 Compare February 21, 2024 19:15
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from 6beced6 to 3f22184 Compare March 12, 2024 14:08
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch 2 times, most recently from 42d8317 to 51b4cf3 Compare April 4, 2024 13:50
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from 51b4cf3 to 5e116c7 Compare April 23, 2024 13:17
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch 2 times, most recently from 270e2b5 to ed3118f Compare May 14, 2024 18:48
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from ed3118f to e066110 Compare June 4, 2024 14:47
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from e066110 to 874e20f Compare June 18, 2024 14:17
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch 2 times, most recently from b007468 to bd405aa Compare June 27, 2024 14:30
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from bd405aa to c0ef5c0 Compare July 9, 2024 14:05
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from c0ef5c0 to a1a4877 Compare July 16, 2024 16:03
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from a1a4877 to 281bd61 Compare August 6, 2024 17:48
Copy link

coderabbitai bot commented Aug 6, 2024

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

The recent update involves a significant upgrade of the Prisma client and related packages in the backend. Both @prisma/client and prisma have been elevated from version 2.30.3 to 5.18.0. This transition may bring new features and improvements, but it could also introduce breaking changes necessitating code adjustments. The primary focus of this update is on enhancing database interaction capabilities.

Changes

Files Change Summary
packages/backend/package.json Updated @prisma/client and prisma from 2.30.3 to 5.18.0

Poem

🐇 In the garden where data flows,
The Prisma blooms and brightly glows.
With each version, we leap and bound,
New features sprout from the ground.
Hopping high, we adapt with cheer,
For changes bring us closer, dear! 🌼


🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between f5013ea and 281bd61.

Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
Files selected for processing (1)
  • packages/backend/package.json (1 hunks)
Additional comments not posted (2)
packages/backend/package.json (2)

37-37: Verify compatibility and test coverage for prisma update.

The prisma version has been updated from 2.30.3 to 5.18.0. Ensure that all existing code is compatible with this major version update and that comprehensive tests are in place to cover any new features or changes.


32-32: Verify compatibility and test coverage for @prisma/client update.

The @prisma/client version has been updated from 2.30.3 to 5.18.0. Ensure that all existing code is compatible with this major version update and that comprehensive tests are in place to cover any new features or changes.

@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch 2 times, most recently from 1639976 to 381d433 Compare September 2, 2024 16:36
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from 381d433 to eb88354 Compare September 24, 2024 16:45
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch 2 times, most recently from 0a50f65 to 70ea9dd Compare October 17, 2024 19:13
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from 70ea9dd to b3e3ceb Compare November 5, 2024 17:41
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from b3e3ceb to c7771d4 Compare November 28, 2024 18:44
@renovate renovate bot changed the title fix(deps): update prisma monorepo to v5 (major) fix(deps): update prisma monorepo to v6 (major) Nov 28, 2024
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from c7771d4 to 736aa8e Compare December 2, 2024 14:00
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from 736aa8e to 6fa4917 Compare December 21, 2024 17:40
@renovate renovate bot force-pushed the renovate/major-prisma-monorepo branch from 6fa4917 to 90cdec9 Compare January 8, 2025 15:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants