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

chore(deps): update dependency @prisma/generator-helper to ~5.12.0 #91

Merged
merged 1 commit into from
Apr 4, 2024

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Mar 15, 2024

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@prisma/generator-helper (source) ~5.10.0 -> ~5.12.0 age adoption passing confidence

Release Notes

prisma/prisma (@​prisma/generator-helper)

v5.12.0

Compare Source

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

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

Highlights

Cloudflare D1 (Preview)

This release brings Preview support for Cloudflare D1 with Prisma ORM 🥳

D1 is Cloudflare’s SQLite database that can be used when deploying applications with Cloudflare.

When using Prisma ORM with D1, you can continue to: model your database with Prisma schema language, specify sqlite as your database provider in your Prisma schema, and interact with your database using Prisma Client.

To use Prisma ORM and D1 on Cloudflare Workers or Cloudflare Pages, you need to set sqlite as your database provider and use the @prisma/adapter-d1 database adapter via the driverAdapters Preview feature, released back in version 5.4.0.

Here is an example of sending a query to your D1 database using Prisma Client in your Worker:

// src/index.ts file
import { PrismaClient } from '@​prisma/client'
import { PrismaD1 } from '@​prisma/adapter-d1'

// Add the D1Database to the Env interface
export interface Env {
// This must match the binding name defined in your wrangler.toml configuration
  DB: D1Database
}

export default {
  async fetch(
    request: Request,
    env: Env,
    ctx: ExecutionContext
  ): Promise<Response> {
    // Make sure the database name matches the binding name in wrangler.toml and Env interface
    const adapter = new PrismaD1(env.DB)
    // Instantiate PrismaClient using the PrismaD1 driver adapter
    const prisma = new PrismaClient({ adapter })

    const users = await prisma.user.findMany()
    const result = JSON.stringify(users)
    return new Response(result)
  },
}

📚 Documentation: Deploying a Cloudflare worker with D1 and Prisma ORM

✍️ Blog post: Build Applications at the Edge with Prisma ORM & Cloudflare D1 (Preview)

📣 Share your feedback: D1 Driver Adapter

🚀 Example project: Deploy a Cloudflare Worker with D1

createMany() for SQLite

Bringing support for createMany() in SQLite has been a long-awaited and highly requested feature

createMany() is a method on Prisma Client, released back in version 2.16.0, that lets you insert multiple records into your database at once. This can be really useful when seeding your database or inserting bulk data.

Here is an example of using createMany() to create new users:

const users = await prisma.user.createMany({
  data: [
    { name: 'Sonali', email: '[email protected]' },
    { name: 'Alex', email: '[email protected]' },
    { name: 'Yewande', email: '[email protected]' },
    { name: 'Angelina', email: '[email protected]' },
  ],
})

Before this release, if you wanted to perform bulk inserts with SQLite, you would have most likely used $queryRawUnsafe to execute raw SQL queries. But now you don’t have to go through all that trouble 🙂

With SQLite, createMany() works exactly the same way from an API standpoint as it does with other databases except it does not support the skipDuplicates option. At the behavior level, SQLite will split createMany() entries into multiple INSERT queries when the model in your schema contains fields with attributes like @default(dbgenerated()) or @default(autoincrement()) and when the fields are not consistently provided with values across the entries.

📚Documentation: createMany() - Prisma Client API Reference

Fixes and Improvements

Prisma Client

Credits

Huge thanks to @​yubrot, @​skyzh, @​anuraaga, @​onichandame, @​LucianBuzzo, @​RobertCraigie, @​arthurfiorette, @​elithrar for helping!

v5.11.0

Compare Source

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

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

Highlights
Edge function support for Cloudflare and Vercel (Preview)

We’re thrilled to announce that support for edge function deployments with Prisma ORM is now in Preview 🥳 As of this release, you can deploy your apps that are using Prisma ORM to:

  • Vercel Edge Functions and Vercel Edge Middleware
  • Cloudflare Workers and Cloudflare Pages

In order to deploy to an edge function, you’ll need to use a compatible database driver (along with its Prisma driver adapter):

  • Neon Serverless Driver (for PostgreSQL databases hosted via Neon)
  • PlanetScale Serverless Driver (for MySQL databases hosted via PlanetScale)
  • pg driver (for traditional PostgreSQL databases)
  • @libsql/client driver (for SQLite databases hosted via Turso)

Check out our documentation to learn how you can deploy an edge function using any combination of supported edge function provider and database.

You can also read more about it in the announcement blog post!

Performance improvements in nested create operations

With Prisma ORM, you can create multiple new records in nested queries, for example:

const user = await prisma.user.update({
  where: { id: 9 },
  data: {
    name: 'Elliott',
    posts: {
      create: {
        data: [{ title: 'My first post' }, { title: 'My second post' }],
      },
    },
  },
})

In previous versions, Prisma ORM would translate this into multiple SQL INSERT queries, each requiring its own roundtrip to the database. As of this release, these nested create queries are optimized and the INSERT queries are sent to the database in bulk in a single roundtrip. These optimizations apply to one-to-many as well as many-to-many relations.

With this change, using the nested create option to create multiple records effectively becomes equivalent to using a nested createMany operation (except that createMany only works with one-to-many relations, whereas create works both with one-to-many and many-to-many).

Note: Only the deepest nested operation is optimized. If a user specified create (1) -> create (2) -> create (3) in their query, only create (3) will be optimized.

Fixes and improvements
Prisma Client
Prisma Migrate
Prisma Engines

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.


  • 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 added the renovate Renovate dependency updates label Mar 15, 2024
Copy link

railway-app bot commented Mar 15, 2024

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.

@renovate renovate bot force-pushed the renovate/prisma-generator-helper-5.x branch from 0168e2c to 9c072e4 Compare April 2, 2024 15:25
@renovate renovate bot changed the title chore(deps): update dependency @prisma/generator-helper to ~5.11.0 chore(deps): update dependency @prisma/generator-helper to ~5.12.0 Apr 2, 2024
@Ovyerus Ovyerus merged commit 2e44b9a into dev Apr 4, 2024
4 checks passed
@renovate renovate bot deleted the renovate/prisma-generator-helper-5.x branch April 5, 2024 00:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
renovate Renovate dependency updates
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant