@prisma/extension-accelerate
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

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,
  },
});

Readme

Keywords

none

Package Sidebar

Install

npm i @prisma/extension-accelerate

Weekly Downloads

23,683

Version

1.0.0

License

none

Unpacked Size

62.8 kB

Total Files

28

Last publish

Collaborators

  • pirix-gh
  • janpio
  • prismabot