# Supabase with Accelerate (Prisma ORM v7) (/docs/guides/v7/integrations/supabase-accelerate) > For the complete Prisma documentation index, see [llms.txt](https://www.prisma.io/docs/llms.txt). A markdown version of any docs page is available by appending `.md` to its URL. Learn how to set up PostgreSQL on Supabase with Prisma Accelerate's Connection Pool Location: Guides > v7 > Integrations > Supabase with Accelerate ## Introduction [#introduction] This guides teaches you how to add connection pooling to a PostgreSQL database hosted on [Supabase](https://supabase.com/) using [Prisma Accelerate](https://www.prisma.io/docs/accelerate). Prisma Accelerate is a connection pooler that keeps your database within its connection limits during traffic spikes and high load. Check out this [video](https://www.youtube.com/watch?v=cnL75if6Aq0) demonstrating how it performs in a load test or [learn why connection pooling is important](https://www.prisma.io/blog/saving-black-friday-with-connection-pooling). [Set up Supabase with Prisma Accelerate connection pooling](https://www.youtube.com/watch?v=cVB7Bv0T16M) ## Prerequisites [#prerequisites] To successfully complete this guide, you need **a connection string for a PostgreSQL instance hosted on Supabase**. It typically looks similar to this: ```bash no-copy postgresql://postgres:[YOUR-PASSWORD]@db.nzpppscrldfwlzfalbrf.supabase.co:5432/postgres ``` If you already have a project using Prisma ORM, you can skip the first two steps and jump ahead to [Step 3. Install the Accelerate extension](#3-install-the-accelerate-extension). ## 1. Set up Prisma ORM [#1-set-up-prisma-orm] Start by installing the Prisma CLI in your project: #### bun ```bash bun add prisma@prev --dev ``` #### pnpm ```bash pnpm add prisma@prev --save-dev ``` #### yarn ```bash yarn add prisma@prev --dev ``` #### npm ```bash npm install prisma@prev --save-dev ``` Then, run the following command to initialize a new project: #### bun ```bash bunx --bun prisma init ``` #### pnpm ```bash pnpm prisma init ``` #### yarn ```bash yarn prisma init ``` #### npm ```bash npx prisma init ``` This will create a new `prisma` directory with a `schema.prisma` file and add a `.env` file with the `DATABASE_URL` environment variable. Update the file and set the `DATABASE_URL` to your Supabase connection string: ```text title=".env" DATABASE_URL="postgresql://postgres:[YOUR-PASSWORD]@db.nzpppscrldfwlzfalbrf.supabase.co:5432/postgres" ``` Create a `prisma.config.ts` file to configure Prisma: ```typescript title="prisma.config.ts" import "dotenv/config"; import { defineConfig, env } from "prisma/config"; export default defineConfig({ schema: "prisma/schema.prisma", migrations: { path: "prisma/migrations", }, datasource: { url: env("DATABASE_URL"), }, }); ``` > [!NOTE] > You'll need to install the `dotenv` package to load environment variables: > > > > > #### bun > ```bash > bun add dotenv > ``` > > > #### pnpm > ```bash > pnpm add dotenv > ``` > > > #### yarn > ```bash > yarn add dotenv > ``` > > > #### npm > ```bash > npm install dotenv > ``` > > ## 2. Introspect your database [#2-introspect-your-database] Next, run the following command to introspect your database and create your data model: #### bun ```bash bunx prisma db pull ``` #### pnpm ```bash pnpm prisma db pull ``` #### yarn ```bash yarn prisma db pull ``` #### npm ```bash npx prisma db pull ``` This command reads your database schema and creates new models in your `schema.prisma` file that match the tables in your database. > [!NOTE] > If you want to use Prisma Migrate in the future, you also need to [baseline your database](https://www.prisma.io/docs/orm/v7/prisma-migrate/workflows/baselining). ## 3. Install the Accelerate extension [#3-install-the-accelerate-extension] Install the Prisma Client extension for Accelerate: #### bun ```bash bun add @prisma/extension-accelerate ``` #### pnpm ```bash pnpm add @prisma/extension-accelerate ``` #### yarn ```bash yarn add @prisma/extension-accelerate ``` #### npm ```bash npm install @prisma/extension-accelerate ``` This is needed to access Prisma Accelerate's connection pool. ## 4. Set up Accelerate in the Prisma Console [#4-set-up-accelerate-in-the-prisma-console] To set up Accelerate in the Prisma Console, follow these steps: 1. Log into the [Prisma Console](https://console.prisma.io/?utm_source=docs\&utm_medium=content\&utm_content=guides). 2. Select **New project** 3. Choose a **Name** for your project 4. In the **Choose your starting product** section, find the **Accelerate** card and click **Get started** 5. In the field for your **Database connection string**, paste your Supabase connection string 6. Select the **Region** that's closest to your database 7. Click **Create project** 8. On the next screen, click **Enable Accelerate** Once you went through these steps, you'll be redirected to another page where you need to the click the **Generate API key** button. You'll then be shown a new connection URL which enables you to connect to Prisma Accelerate's connection pool. This needs to be set as the new `DATABASE_URL` in your `.env` file: ```text title=".env" DATABASE_URL="prisma://accelerate.prisma-data.net/?api_key=ey..." ``` > [!NOTE] > If you want to use Prisma Migrate with Prisma Accelerate, you need to provide a direct database URL in your `prisma.config.ts` file. The Accelerate URL (starting with `prisma://`) is used for queries via PrismaClient, while the direct database URL is used for migrations. > > Update your `prisma.config.ts`: > > ```typescript title="prisma.config.ts" > import "dotenv/config"; > import { defineConfig, env } from "prisma/config"; > > export default defineConfig({ > schema: "prisma/schema.prisma", > migrations: { > path: "prisma/migrations", > }, > datasource: { > url: env("DIRECT_URL"), // Direct database URL for migrations > }, > }); > ``` > > And add the `DIRECT_URL` to your `.env` file: > > ```text title=".env" > DATABASE_URL="prisma://accelerate.prisma-data.net/?api_key=ey..." > DIRECT_URL="postgresql://postgres:[YOUR-PASSWORD]@db.nzpppscrldfwlzfalbrf.supabase.co:5432/postgres" > ``` ## 5. Generate Prisma Client [#5-generate-prisma-client] With your Prisma schema in place, generate Prisma Client: #### bun ```bash bunx prisma generate ``` #### pnpm ```bash pnpm prisma generate ``` #### yarn ```bash yarn prisma generate ``` #### npm ```bash npx prisma generate ``` > [!NOTE] > In Prisma v7, the `--no-engine` flag is no longer required when using Prisma Accelerate. Previously, you would run `prisma generate --no-engine`, but now the standard `prisma generate` command works for all use cases. ## 6. Send queries through the connection pool [#6-send-queries-through-the-connection-pool] In your application code, you now need to apply the Accelerate extension to your Prisma Client instance: ```ts import { PrismaClient } from "./generated/prisma/client"; import { withAccelerate } from "@prisma/extension-accelerate"; const prisma = new PrismaClient({ accelerateUrl: process.env.DATABASE_URL, }).$extends(withAccelerate()); ``` At this point, you can now start sending queries which will be routed through the connection pool to your database. ## Related pages - [`AI SDK (with Next.js)`](https://www.prisma.io/docs/guides/v7/integrations/ai-sdk): Build a chat application with AI SDK, Prisma, and Next.js to store chat sessions and messages - [`GitHub Actions`](https://www.prisma.io/docs/guides/v7/integrations/github-actions): Provision and manage Prisma Postgres databases per pull request using GitHub Actions and Prisma REST API - [`Neon with Accelerate`](https://www.prisma.io/docs/guides/v7/integrations/neon-accelerate): Learn how to set up PostgreSQL on Neon with Prisma Accelerate's Connection Pool