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. 4.17.0-dev.4130 Jun 2023pre-release

    Nothing published for this version

  2. 4.17.0-dev.4030 Jun 2023pre-release

    Nothing published for this version

  3. 4.17.0-dev.3928 Jun 2023pre-release

    Nothing published for this version

  4. 4.17.0-dev.3826 Jun 2023pre-release

    Nothing published for this version

  5. 4.17.0-dev.3723 Jun 2023pre-release

    Nothing published for this version

  6. 4.17.0-dev.3623 Jun 2023pre-release

    Nothing published for this version

  7. 4.17.0-dev.3523 Jun 2023pre-release

    Nothing published for this version

  8. 4.17.0-dev.3423 Jun 2023pre-release

    Nothing published for this version

  9. 4.17.0-dev.3323 Jun 2023pre-release

    Nothing published for this version

  10. 4.17.0-dev.3223 Jun 2023pre-release

    Nothing published for this version

  11. 4.17.0-dev.3023 Jun 2023pre-release

    Nothing published for this version

  12. 4.17.0-dev.2923 Jun 2023pre-release

    Nothing published for this version

  13. 4.17.0-dev.2823 Jun 2023pre-release

    Nothing published for this version

  14. 4.17.0-dev.2723 Jun 2023pre-release

    Nothing published for this version

  15. 4.17.0-dev.2623 Jun 2023pre-release

    Nothing published for this version

  16. 4.17.0-dev.2423 Jun 2023pre-release

    Nothing published for this version

  17. 4.17.0-dev.2322 Jun 2023pre-release

    Nothing published for this version

  18. 4.17.0-dev.2222 Jun 2023pre-release

    Nothing published for this version

  19. 4.17.0-dev.2122 Jun 2023pre-release

    Nothing published for this version

  20. 4.17.0-dev.2022 Jun 2023pre-release

    Nothing published for this version

  21. 4.17.0-dev.1922 Jun 2023pre-release

    Nothing published for this version

  22. 4.17.0-dev.1822 Jun 2023pre-release

    Nothing published for this version

  23. 4.17.0-dev.1722 Jun 2023pre-release

    Nothing published for this version

  24. 4.17.0-dev.1621 Jun 2023pre-release

    Nothing published for this version

  25. 4.17.0-dev.1521 Jun 2023pre-release

    Nothing published for this version

  26. 4.17.0-dev.1421 Jun 2023pre-release

    Nothing published for this version

  27. 4.17.0-dev.1321 Jun 2023pre-release

    Nothing published for this version

  28. 4.17.0-dev.1221 Jun 2023pre-release

    Nothing published for this version

  29. 4.17.0-dev.1121 Jun 2023pre-release

    Nothing published for this version

  30. 4.17.0-dev.1021 Jun 2023pre-release

    Nothing published for this version

  31. 4.17.0-dev.921 Jun 2023pre-release

    Nothing published for this version

  32. 4.17.0-dev.821 Jun 2023pre-release

    Nothing published for this version

  33. 4.17.0-dev.721 Jun 2023pre-release

    Nothing published for this version

  34. 4.17.0-dev.621 Jun 2023pre-release

    Nothing published for this version

  35. 4.17.0-dev.521 Jun 2023pre-release

    Nothing published for this version

  36. 4.17.0-dev.421 Jun 2023pre-release

    Nothing published for this version

  37. 4.17.0-dev.321 Jun 2023pre-release

    Nothing published for this version

  38. 4.17.0-dev.221 Jun 2023pre-release

    Nothing published for this version

  39. 4.17.0-dev.120 Jun 2023pre-release

    Nothing published for this version

  40. 4.16.230 Jun 2023
    Release notesOpen source →
  41. 4.16.2-dev.430 Jun 2023pre-release

    Nothing published for this version

  42. 4.16.2-dev.330 Jun 2023pre-release

    Nothing published for this version

  43. 4.16.2-dev.223 Jun 2023pre-release

    Nothing published for this version

  44. 4.16.2-dev.123 Jun 2023pre-release

    Nothing published for this version

  45. 4.16.122 Jun 2023
    Release notesOpen source →
  46. 4.16.1-dev.922 Jun 2023pre-release

    Nothing published for this version

  47. 4.16.1-dev.822 Jun 2023pre-release

    Nothing published for this version

  48. 4.16.1-dev.721 Jun 2023pre-release

    Nothing published for this version

  49. 4.16.1-dev.621 Jun 2023pre-release

    Nothing published for this version

  50. 4.16.1-dev.521 Jun 2023pre-release

    Nothing published for this version

  51. 4.16.1-dev.421 Jun 2023pre-release

    Nothing published for this version

  52. 4.16.1-dev.321 Jun 2023pre-release

    Nothing published for this version

  53. 4.16.1-dev.221 Jun 2023pre-release

    Nothing published for this version

  54. 4.16.1-dev.121 Jun 2023pre-release

    Nothing published for this version

  55. 4.16.020 Jun 2023
    Release notes

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

    Highlights

    This release promotes the following Preview features to General Availability:

    • Prisma Client extensions
    • Ordering by nulls first and last
    • Count by filtered relation

    Prisma Client extensions are Generally Available

    Today, we’re very excited to announce that Prisma Client extensions are Generally Available and production-ready! This means you can use the feature without the clientExtensions Preview feature flag.🚀

    Prisma Client extensions are a powerful new feature for adding functionality on top of your Prisma Client in a type-safe manner. With this feature, you can create simple, but flexible solutions.

    Prisma Client extensions have 4 different types of components that can be included in an extension:

    • Result extensions components: add custom fields and methods to query result objects, for example, virtual/computed fields.
    • Model extensions components: enable you to add new methods to your models alongside existing model methods such as findMany.
    • Query extensions components: let you hook into the lifecycle of a query and perform side effects, modify query arguments, or modify the results in a type-safe way. These are an alternative to middleware that provide complete type safety and can be applied in an ad-hoc manner to different extensions.
    • Client extensions components: allow you to add new top-level methods to Prisma Client. You can use this to extend Prisma Client with functionality that isn’t tied to specific models.
    const prisma = new PrismaClient().$extends({
      name: "extension-name",
      result: { /* ... */ },
      model: { /* ... */ },
      query: { /* ... */ },
      client: { /* ... */ },
    });
    

    You can also create and publish extensions for others to use. Learn more about how to share extensions in our documentation.

    More features and changes made to Client Extensions

    We also made the following improvements to Prisma Client extensions in preparation for General Availability:

    • Added a top-level $allOperations method for query component that captures all model operations as well as top-level raw queries. Refer to our documentation for more information.

      const prisma = new PrismaClient().$extends({
        query: {
          $allOperations({ args, query, operation, model }) {
            /* your extension's logic here */
          }
        }
      })
      
    • Prisma.validator can now also be used for extended types:

      const prisma = new PrismaClient().$extends({/* ... */})
      const data = Prisma.validator(prisma, 'user', 'findFirst', 'select')({
        id: true,
      })
      
    • query callbacks for $queryRaw and $executeRaw will always receive Sql instance as args. This instance can be used to compose a new query using Prisma.sql:

      const prisma = new PrismaClient().$extends({
        query: {
          $queryRaw({ args, query }) {
            return query(Prisma.sql`START TRANSACTION; ${args}; COMMIT;`)
          }
        }
      })
      
    • $on cannot be called after extending Prisma Client. Therefore, if you want to use event handlers together with extensions, we recommend using the $on method before $extends.

      const prisma = new PrismaClient()
        .$on(/* ... */)
        .$extends({/* ... */})
      
    • We updated the import path for utilities used for authoring extension to @prisma/client/extension rather than @prisma/client

      + import { Prisma } from "@prisma/client/extension"
      - import { Prisma } from "@prisma/client"
      

    Deprecating Middleware

    We also took this opportunity to deprecate Prisma Client’s middleware. We recommend using to using Prisma Client query extension components which can be used to achieve the same functionality and with better type safety.

    🚧 Middleware will still be available in Prisma Client’s API. However, we recommend using Prisma Client extensions over middleware.

    Ordering by nulls first and last is now Generally Available

    Starting with this release, we’re excited to announce that orderByNulls is now Generally Available! This means you can use the feature without the orderByNulls Preview feature flag.🌟

    We introduced this feature in 4.1.0 to enable you to sort records with null fields to either appear at the beginning or end of the result.

    The following example query sorts posts by updatedAt, with records having a null value at the end of the list:

    await prisma.post.findMany({
      orderBy: {
        updatedAt: { sort: 'asc', nulls: 'last' },
      },
    })
    

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

    We’re excited to see what you will build! Feel free to share with us what you build on Twitter, Slack, or Discord.

    Count by filtered relation is now Generally Available

    This release moves the filteredRelationCount Preview feature to General Availability! This means you can use the feature without the filteredRelationCount Preview feature flag.

    We first introduced this feature in 4.3.0 to add the ability to count by filtered relations.

    The following query, for example, counts all posts with the title “Hello!”:

    await prisma.user.findMany({
      select: {
        _count: {
          select: {
            posts: { where: { title: 'Hello!' } },
          },
        },
      },
    })
    

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

    Introspection warnings for expression indexes

    In the last two releases, 4.13.0 and 4.14.0, we added 9 introspection warnings. These warnings surface features in use in your database that cannot currently be represented in the Prisma schema.

    In this release, we’re adding one more introspection warning to the list: expression indexes.

    On database introspection, the Prisma CLI will surface the feature with a warning, and a comment in your Prisma schema for sections for each feature in use. The warnings will also contain instructions for workarounds on how to use the feature.

    Fixes and improvements

    Prisma Client

    Prisma Migrate

    Language tools (e.g. VS Code)

    Prisma Studio

    📺 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, June 22 at 5 pm Berlin | 8 am San Francisco.

    Open source →
  56. 4.16.0-integration-studio-xdg-enoent.116 Jun 2023pre-release

    Nothing published for this version

  57. 4.16.0-integration-studio-direct-url.63 Jun 2023pre-release

    Nothing published for this version

  58. 4.16.0-integration-studio-direct-url.53 Jun 2023pre-release

    Nothing published for this version

  59. 4.16.0-integration-studio-direct-url.43 Jun 2023pre-release

    Nothing published for this version

  60. 4.16.0-integration-studio-direct-url.33 Jun 2023pre-release

    Nothing published for this version