Drizzle <> Supabase
This guide assumes familiarity with:
- Database connection basics with Drizzle
- Drizzle PostgreSQL drivers - docs
According to the official website, Supabase is an open source Firebase alternative for building secure and performant Postgres backends with minimal configuration.
Checkout official Supabase + Drizzle docs.
Step 1 - Install packages
npm
yarn
pnpm
bun
npm i drizzle-orm postgres npm i -D drizzle-kit Step 2 - Initialize the driver and make a query
import { drizzle } from 'drizzle-orm/postgres-js' const db = drizzle(process.env.DATABASE_URL); const allUsers = await db.select().from(...);If you need to provide your existing driver:
import { drizzle } from 'drizzle-orm/postgres-js' import postgres from 'postgres' const client = postgres(process.env.DATABASE_URL) const db = drizzle({ client }); const allUsers = await db.select().from(...);If you decide to use connection pooling via Supabase (described here), and have “Transaction” pool mode enabled, then ensure to turn off prepare, as prepared statements are not supported.
import { drizzle } from 'drizzle-orm/postgres-js' import postgres from 'postgres' // Disable prefetch as it is not supported for "Transaction" pool mode const client = postgres(process.env.DATABASE_URL, { prepare: false }) const db = drizzle({ client }); const allUsers = await db.select().from(...);Connect to your database using the Connection Pooler for serverless environments, and the Direct Connection for long-running servers.