Drizzle <> Neon Postgres

本指南假定您已熟悉:

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 Serverless 驱动的示例,请见此处。
要在有服务器环境中使用 Neon,您可以使用 node-postgres 或 Postgres.js 驱动,如 Neon 的 官方 Node.js 文档 中所述

第 1 步 - 安装包

@neondatabase/serverless
node-postgres
postgres.js
npm
yarn
pnpm
bun
npm i drizzle-orm@rc @neondatabase/serverless
npm i -D drizzle-kit@rc

第 2 步 - 初始化驱动并执行查询

Neon HTTP
Neon Websockets
node-postgres
postgres.js
// 确保安装 '@neondatabase/serverless' 包 
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
// 确保安装 '@neondatabase/serverless' 包 
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');

接下来是什么?