yarn prisma 5.19.0

latest releases: 5.23.0-integration-otel-peer-deps.1, 5.23.0-integration-engines-5-23-0-2-add-schema-to-dmmf-6b2b29378ec9ecb0902a9ae4fa6302e9b16baf18.1, 5.23.0-integration-engines-5-23-0-1-add-schema-to-dmmf-69b6e9d3bee92eeb76fcfa1ffb0a5b65cd7027b4.1...
2 months ago

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 @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 '@prisma/client'
       import { getUsersWithPosts } from '@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 prisma/prisma-engines#4970 and #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

  • #23742 fixes Prisma Client not supporting deeply nested some clauses when the relationJoins Preview feature was enabled.

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!

Don't miss a new prisma release

NewReleases is sending notifications on new releases.