Drizzle 与 Supabase
根据**官方网站**,Supabase 是一个开源的 Firebase 替代方案,旨在以最少配置构建安全且高性能的 Postgres 后端。
查阅官方的**Supabase + Drizzle** 文档。
步骤 1 - 安装包
npm
yarn
pnpm
bun
npm i drizzle-orm postgres
npm i -D drizzle-kit
步骤 2 - 初始化驱动程序并执行查询
import { drizzle } from 'drizzle-orm/postgres-js'
const db = drizzle(process.env.DATABASE_URL);
const allUsers = await db.select().from(...);
如果您需要提供现有驱动程序
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(...);
如果您决定通过 Supabase 使用连接池(此处有说明),并且启用了“事务”池模式,请务必关闭预准备,因为不支持预准备语句。
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(...);
对于**无服务器环境**,请使用连接池器连接到数据库;对于**长时间运行的服务器**,请使用直接连接。