PackageTrack

npm Β· #3659 most downloaded on npm

@prisma/client

7.10.0prisma/prisma β†—

Prisma Client is an auto-generated, type-safe and modern JavaScript/TypeScript ORM for Node.js that's tailored to your data. Supports PostgreSQL, CockroachDB, MySQL, MariaDB, SQL Server, SQLite & MongoDB databases.

Release timeline

10653 releases since 2020
20202026

One column per quarter.

Releases

  1. 3.15.0-dev.2013 May 2022pre-release

    Nothing published for this version

  2. 3.15.0-dev.1913 May 2022pre-release

    Nothing published for this version

  3. 3.15.0-dev.1812 May 2022pre-release

    Nothing published for this version

  4. 3.15.0-dev.1712 May 2022pre-release

    Nothing published for this version

  5. 3.15.0-dev.1612 May 2022pre-release

    Nothing published for this version

  6. 3.15.0-dev.1512 May 2022pre-release

    Nothing published for this version

  7. 3.15.0-dev.1412 May 2022pre-release

    Nothing published for this version

  8. 3.15.0-dev.1312 May 2022pre-release

    Nothing published for this version

  9. 3.15.0-dev.1212 May 2022pre-release

    Nothing published for this version

  10. 3.15.0-dev.1112 May 2022pre-release

    Nothing published for this version

  11. 3.15.0-dev.1012 May 2022pre-release

    Nothing published for this version

  12. 3.15.0-dev.911 May 2022pre-release

    Nothing published for this version

  13. 3.15.0-dev.811 May 2022pre-release

    Nothing published for this version

  14. 3.15.0-dev.711 May 2022pre-release

    Nothing published for this version

  15. 3.15.0-dev.611 May 2022pre-release

    Nothing published for this version

  16. 3.15.0-dev.511 May 2022pre-release

    Nothing published for this version

  17. 3.15.0-dev.411 May 2022pre-release

    Nothing published for this version

  18. 3.15.0-dev.311 May 2022pre-release

    Nothing published for this version

  19. 3.15.0-dev.210 May 2022pre-release

    Nothing published for this version

  20. 3.15.0-dev.110 May 2022pre-release

    Nothing published for this version

  21. 3.14.010 May 2022
    Release notes

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

    Major improvements

    CockroachDB connector is now Generally Available!

    We are proud to announce the CockroachDB connector is now stable and Generally Available. The connector was built in joined efforts with the team at Cockroach Labs and comes with full Prisma Client and Prisma Migrate support.

    If you're upgrading from Prisma version 3.9.0+ or the PostgreSQL connector, you can now run npx prisma db pull and review the changes to your schema. To learn more about CockroachDB-specific native types we support, refer to our docs.

    To learn more about the connector and how it differs from PostgreSQL, head to our documentation.

    PostgreSQL GIN, GiST, SP-GiST, and BRIN indexes support (Preview)

    We introduced the extendedIndexes Preview feature in version 3.5.0, and we have been adding new configuration options for indexes. We've expanded index type support with the GIN, GiST, SP-GiST, and BRIN indexes in this release.

    To make use of an index type, you can update your Prisma schema by providing the type argument to the @@index attribute:

    datasource db {
      provider = "postgresql"
      url      = env("DATABASE_URL")
    }
    
    generator client {
      provider        = "prisma-client-js"
      previewFeatures = ["extendedIndexes"]
    }
    
    model Post {
      id      Int     @id
      title   String
      content String?
      tags    Json?
    
      @@index([tags], type: Gin)
    }
    

    The following SQL will be generated in your migration when you run prisma migrate dev:

    CREATE TABLE "Post" (
        "id" INTEGER NOT NULL,
        "title" TEXT NOT NULL,
        "content" TEXT,
        "tags" JSONB,
        CONSTRAINT "Post_pkey" PRIMARY KEY ("id")
    );
    
    CREATE INDEX "Post_tags_idx" ON "Post" USING GIN ("tags");
    

    To learn more about configuring index types in your schema, refer to our documentation.

    Improved queryRaw API

    In this release, we made improvements to the SQL raw API. Some improvements are breaking and will be available behind the new improvedQueryRaw Preview feature flag.

    The improvedQueryRaw Preview feature solves most of the issues faced when working with the raw API. We would encourage you to turn on the Preview feature flag, try out the new API, and let us know how we can make it even better.

    You can enable the Preview feature in your Prisma schema as follows:

    datasource db {
      provider = "postgresql"
      url      = env("DATABASE_URL")
    }
    
    generator client {
      provider        = "prisma-client-js"
      previewFeatures = ["improvedQueryRaw"]
    }
    

    Here's a list of the improvements improvedQueryRaw comes with:

    1. Raw scalar values are deserialized as their correct JavaScript types

    Prisma Client queries such as findMany deserialize database scalar values to their corresponding JavaScript types. For example, a DateTime value is deserialized as a JavaScript Date, and a Bytes would be deserialized as a JavaScript Buffer.

    Raw queries now implement the same behavior when the improvedQueryRaw Preview feature flag is enabled.

    ⚠️ This change is not yet available in the SQLite connector.

    The types of values from the database will be used instead of the types in the Prisma schema. Here's an example query and response:

    const res = await prisma.$queryRaw`SELECT bigint, bytes, decimal, date FROM "Table";`
    console.log(res) 
    // [{ bigint: BigInt("123"), bytes: Buffer.from([1, 2]), decimal: new Prisma.Decimal("12.34"), date: Date("<some_date>") }]
    

    Here's a table that recaps the serialization type-mapping for raw results:

    Database Type Javascript Type
    Text String
    Int32 Number
    Float Number
    Double Number
    Int64 BigInt
    Numeric Decimal
    Bytes Buffer
    Json Object
    DateTime Date
    Date Date
    Time Date
    Uuid String
    Xml String

    2. PostgreSQL type-casts

    We've also fixed a lot of PostgreSQL type-casts that were broken by enabling the improvedQueryRaw Preview feature flag.

    Here's an example of a query that used to fail:

    await prisma.$queryRaw`SELECT ${1.5}::int as int`;
    // Before: db error: ERROR: incorrect binary data format in bind parameter 1
    // After: [{ int: 2 }]
    

    You can now perform some more type-casts in your queries:

    await prisma.$queryRaw`SELECT ${2020}::float4, (NOW() - ${"1 day"}::interval), ${"2022-01-01 00:00:00"}::timestamptz;`
    

    A consequence of this fix is that some subtle implicit casts are now handled more strictly and would fail. Here's an example that used to work but won't work anymore under the improvedQueryRaw feature flag:

    await prisma.$queryRaw`SELECT LENGTH(${42});`
    // ERROR: function length(integer) does not exist
    // HINT: No function matches the given name and argument types. You might need to add explicit type casts.
    

    The LENGTH PostgreSQL function only accept text as input. Prisma used to coerce 42 to text silently, but won’t anymore. As suggested by the hint, cast 42 to text as follows:

    await prisma.$queryRaw`SELECT LENGTH(${42}::text);`
    

    3. Query parameters are correctly sent to the database

    This improvement is available without the improvedQueryRaw Preview feature flag.

    Before this release, query parameters of type BigInt, Bytes, and Decimal were incorrectly sent to the database leading to instances of unexpected inserts. Passing the types as query parameters now works:

    await prisma.$executeRaw`INSERT INTO "Table" ("bigint", "bytes", "decimal") VALUES (${BigInt("123")}, ${Buffer.from([1, 2, 3])}, ${new Prisma.Decimal("12.23")});`
    

    Fixes and improvements

    Prisma Client

    Prisma

    Prisma Migrate

    Language tools (e.g. VS Code)

    Credits

    Huge thanks to @ever0de, @flatplate, @njmaeff, @tnzk, @DePasqualeOrg for helping!

    Prisma Day

    Prisma Day is back this year, and it'll be on June 15 - 16 at the JamesJune Sommergarten in Berlin. Join us in-person or online for talks and workshops on modern application development and databases. Come and meet and chat with the team behind the Prisma ORM and Prisma Data Platform.

    πŸ’Ό We're hiring!

    If you're interested in joining our growing team to help empower developers to build data-intensive applications, Prisma is the place for you.

    We're hiring for a number of roles: Technical Support Engineer, Back-end Engineer: Prisma Data Platform, and a Developer Advocate(Frontend/ Fullstack). You can find more jobs we're hiring for on our jobs page.

    Feel free to read through the job descriptions and apply using the links provided.

    πŸ“Ί Join us for another "What's new in Prisma" livestream

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

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

    Open source β†’
  22. 3.14.0-integration-tweak-ci.79 May 2022pre-release

    Nothing published for this version

  23. 3.14.0-integration-tweak-ci.69 May 2022pre-release

    Nothing published for this version

  24. 3.14.0-integration-tweak-ci.54 May 2022pre-release

    Nothing published for this version

  25. 3.14.0-integration-tweak-ci.44 May 2022pre-release

    Nothing published for this version

  26. 3.14.0-integration-tweak-ci.34 May 2022pre-release

    Nothing published for this version

  27. 3.14.0-integration-tweak-ci.24 May 2022pre-release

    Nothing published for this version

  28. 3.14.0-integration-tweak-ci.14 May 2022pre-release

    Nothing published for this version

  29. 3.14.0-integration-tnzk-feature-esm-friendly-reexports.53 May 2022pre-release

    Nothing published for this version

  30. 3.14.0-integration-tnzk-feature-esm-friendly-reexports.327 Apr 2022pre-release

    Nothing published for this version

  31. 3.14.0-integration-tnzk-feature-esm-friendly-reexports.227 Apr 2022pre-release

    Nothing published for this version

  32. 3.14.0-integration-tnzk-feature-esm-friendly-reexports.127 Apr 2022pre-release

    Nothing published for this version

  33. 3.14.0-integration-log-error-details-on-error-report-failure.19 May 2022pre-release

    Nothing published for this version

  34. 3.14.0-integration-handle-fmt-panics.2110 May 2022pre-release

    Nothing published for this version

  35. 3.14.0-integration-handle-fmt-panics.2010 May 2022pre-release

    Nothing published for this version

  36. 3.14.0-integration-handle-fmt-panics.1910 May 2022pre-release

    Nothing published for this version

  37. 3.14.0-integration-handle-fmt-panics.1810 May 2022pre-release

    Nothing published for this version

  38. 3.14.0-integration-handle-fmt-panics.179 May 2022pre-release

    Nothing published for this version

  39. 3.14.0-integration-handle-fmt-panics.169 May 2022pre-release

    Nothing published for this version

  40. 3.14.0-integration-handle-fmt-panics.159 May 2022pre-release

    Nothing published for this version

  41. 3.14.0-integration-handle-fmt-panics.149 May 2022pre-release

    Nothing published for this version

  42. 3.14.0-integration-handle-fmt-panics.139 May 2022pre-release

    Nothing published for this version

  43. 3.14.0-integration-handle-fmt-panics.129 May 2022pre-release

    Nothing published for this version

  44. 3.14.0-integration-handle-fmt-panics.119 May 2022pre-release

    Nothing published for this version

  45. 3.14.0-integration-handle-fmt-panics.109 May 2022pre-release

    Nothing published for this version

  46. 3.14.0-integration-handle-fmt-panics.99 May 2022pre-release

    Nothing published for this version

  47. 3.14.0-integration-handle-fmt-panics.89 May 2022pre-release

    Nothing published for this version

  48. 3.14.0-integration-handle-fmt-panics.79 May 2022pre-release

    Nothing published for this version

  49. 3.14.0-integration-handle-fmt-panics.69 May 2022pre-release

    Nothing published for this version

  50. 3.14.0-integration-handle-fmt-panics.59 May 2022pre-release

    Nothing published for this version

  51. 3.14.0-integration-handle-fmt-panics.48 May 2022pre-release

    Nothing published for this version

  52. 3.14.0-integration-handle-fmt-panics.33 May 2022pre-release

    Nothing published for this version

  53. 3.14.0-integration-handle-fmt-panics.22 May 2022pre-release

    Nothing published for this version

  54. 3.14.0-integration-handle-fmt-panics.129 Apr 2022pre-release

    Nothing published for this version

  55. 3.14.0-integration-fix-inline-schema.510 May 2022pre-release

    Nothing published for this version

  56. 3.14.0-integration-fix-inline-schema.410 May 2022pre-release

    Nothing published for this version

  57. 3.14.0-integration-fix-inline-schema.310 May 2022pre-release

    Nothing published for this version

  58. 3.14.0-integration-fix-inline-schema.210 May 2022pre-release

    Nothing published for this version

  59. 3.14.0-integration-fix-inline-schema.110 May 2022pre-release

    Nothing published for this version

  60. 3.14.0-integration-fix-db-pull-url-overwrites-provider-cockroachdb.26 May 2022pre-release

    Nothing published for this version