Become a Gold Sponsor

Drizzle <> Supabase

This guide assumes familiarity with:

根据 官方网站,Supabase 是一个开源的 Firebase 替代品,旨在使用最小的配置构建安全且高性能的 Postgres 后端。

查看官方 Supabase + Drizzle 文档。

第一步 - 安装软件包

npm
yarn
pnpm
bun
npm i drizzle-orm postgres
npm i -D drizzle-kit

第二步 - 初始化驱动并进行查询

index.ts
import { drizzle } from 'drizzle-orm/postgres-js'

const db = drizzle(process.env.DATABASE_URL);

const allUsers = await db.select().from(...);

如果您需要提供现有的驱动程序:

index.ts
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 使用连接池(在 这里 描述),并启用了“事务”池模式,则确保将 prepare 关闭,因为不支持预编译语句。

index.ts
import { drizzle } from 'drizzle-orm/postgres-js'
import postgres from 'postgres'

// 禁用预取,因为在“事务”池模式下不支持 
const client = postgres(process.env.DATABASE_URL, { prepare: false })
const db = drizzle({ client });

const allUsers = await db.select().from(...);

使用连接池连接到您的数据库以适应 无服务器环境,而在 长时间运行的服务器 中使用直接连接。

接下来是什么?