Drizzle 与 Supabase

本指南假定您熟悉

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

查阅官方的**Supabase + Drizzle** 文档。

步骤 1 - 安装包

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

步骤 2 - 初始化驱动程序并执行查询

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 使用连接池(此处有说明),并且启用了“事务”池模式,请务必关闭预准备,因为不支持预准备语句。

index.ts
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(...);

对于**无服务器环境**,请使用连接池器连接到数据库;对于**长时间运行的服务器**,请使用直接连接。

接下来是什么?