Become a Gold Sponsor

Drizzle <> Neon Postgres

This guide assumes familiarity with:

Drizzle 原生支持使用 neon-httpneon-websockets 驱动连接 Neon。这些驱动在底层使用 neon-serverless 驱动。

使用 neon-httpneon-websockets 驱动,您可以通过 HTTP 或 WebSockets 从无服务器环境访问 Neon 数据库,而不是通过 TCP。
通过 HTTP 查询对于单个非交互事务来说速度更快。

如果您需要会话或交互事务支持,或需要一个完全兼容的可替换 pg 驱动, 那您可以使用基于 WebSocket 的 neon-serverless 驱动。
您可以直接使用 Postgres 连接到 Neon 数据库。

有关在 Cloudflare Worker 中使用 Drizzle ORM 和 Neon 无服务器驱动的示例,请见这里
要从有服务器环境使用 Neon,您可以使用 PostgresJS 驱动,正如 Neon 的 官方 Node.js 文档 中所描述的 — 参见 文档

第一步 - 安装包

npm
yarn
pnpm
bun
npm i drizzle-orm @neondatabase/serverless
npm i -D drizzle-kit

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

Neon HTTP
Neon Websockets
node-postgres
postgres.js
import { drizzle } from 'drizzle-orm/neon-http';

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

const result = await db.execute('select 1');

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

Neon HTTP
Neon Websockets
node-postgres
postgres.js
import { neon } from '@neondatabase/serverless';
import { drizzle } from 'drizzle-orm/neon-http';

const sql = neon(process.env.DATABASE_URL!);
const db = drizzle({ client: sql });

const result = await db.execute('select 1');

接下来是什么?