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 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__"
import "dotenv/config";
import { defineConfig, env } from "prisma/config";
export default defineConfig({
schema: "prisma/schema.prisma",
datasource: {
url: env("DATABASE_URL"),
},
});
DATABASE_URL="prisma://accelerate.prisma-data.net/?api_key=__API_KEY__"
Finally, configure your Prisma Client instance with the accelerateUrl to enable Accelerate’s connection pool:
import "dotenv/config";
import { PrismaClient } from "./generated/client";
const prisma = new PrismaClient({
accelerateUrl: process.env.DATABASE_URL,
});
And in your schema.prisma
generator client {
provider = "prisma-client"
output = "./generated"
}
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,
},
});