JSPM

@prisma/extension-accelerate

0.0.0-experimental-3ba6a4e
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • Downloads 76204
    • Score
      100M100P100Q166377F

    Prisma Client extension for Accelerate

    Package Exports

    • @prisma/extension-accelerate

    Readme

    Accelerate Prisma Client extension

    This is the package for the Prisma Client extension that enables usage of Prisma Accelerate.

    Prisma Accelerate provides an external connection pool and global caching layer that you can use to speed up your database queries.

    It is part of the Prisma ecosystem, alongside other tools such as:

    • Prisma ORM: Next-generation Node.js and TypeScript ORM, supporting PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, CockroachDB, and MongoDB.
    • Prisma Pulse: Real-time database events with type-safe subscriptions.

    Prisma is leading Data DX, a philosophy that promotes simplicity in data-driven application development. Learn more on the Data DX manifesto.

    Getting started with Accelerate

    Resources

    You can explore Accelerate with the following resources:

    Using Accelerate

    1. Enable Accelerate

    Log into Prisma Data Platform and enable Accelerate for your project.

    2. Add Accelerate to your application

    Replace the database connection string with the Accelerate connection string you generated in Prisma Data Platform (assuming you store your database connection string in the DATABASE_URL in the .env file):

    DATABASE_URL="prisma://accelerate.prisma-data.net/?api_key=__API_KEY__"

    To be able to seamlessly continue to use Prisma Migrate, you can set the directUrl property in your datasource:

    datasource db {
      provider  = "postgresql"
      url       = env("DATABASE_URL")
      directUrl = env("DIRECT_DATABASE_URL")
    }

    And then add the URL that connects directly to your database as the value for DIRECT_DATABASE_URL :

    DATABASE_URL="prisma://accelerate.prisma-data.net/?api_key=__API_KEY__"
    DIRECT_DATABASE_URL="postgresql://USER:PASSWORD@HOST:PORT/DATABASE"

    Finally, extend your Prisma Client instance with the Accelerate extension to enable Accelerate’s connection pool:

    import { PrismaClient } from "@prisma/client/edge";
    import { withAccelerate } from "@prisma/extension-accelerate";
    
    const prisma = new PrismaClient().$extends(withAccelerate());

    3. Add caching to your Accelerate queries

    You can optionally configure caching on a per-query level using the ttl (Time-To-Live) and swl (Stale-While-Revalidate) options:

    await prisma.user.findMany({
      cacheStrategy: {
        ttl: 3_600,
        swr: 500,
      },
    });