[ PROMPT_NODE_23586 ]
neon-drizzle
[ SKILL_DOCUMENTATION ]
# Neon 与 Drizzle 集成
在 **Neon** Postgres 中使用 **Drizzle ORM** 的集成模式、配置和优化方案。
官方文档:
bash
curl -H "Accept: text/markdown" https://neon.tech/docs/guides/drizzle
## 选择合适的驱动程序
Drizzle ORM 可与多种 Postgres 驱动程序配合使用。请参阅 `connection-methods.md` 获取完整的决策树。
| 平台 | TCP 支持 | 连接池 | 推荐驱动程序 |
| ----------------------- | ----------- | ------------------- | -------------------------- |
| Vercel (Fluid) | 是 | `@vercel/functions` | `pg` (node-postgres) |
| Cloudflare (Hyperdrive) | 是 | Hyperdrive | `pg` (node-postgres) |
| Cloudflare Workers | 否 | 否 | `@neondatabase/serverless` |
| Netlify Functions | 否 | 否 | `@neondatabase/serverless` |
| Deno Deploy | 否 | 否 | `@neondatabase/serverless` |
| Railway / Render | 是 | 内置 | `pg` (node-postgres) |
## 连接设置
### 1. 使用 node-postgres 进行 TCP 连接 (长驻服务器)
适用于 Railway、Render、传统 VPS。
bash
npm install drizzle-orm pg
npm install -D drizzle-kit @types/pg dotenv
typescript
// src/db.ts
import { drizzle } from "drizzle-orm/node-postgres";
import { Pool } from "pg";
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
export const db = drizzle({ client: pool });
### 2. Vercel Fluid Compute 与连接池
bash
npm install drizzle-orm pg @vercel/functions
npm install -D drizzle-kit @types/pg
typescript
// src/db.ts
import { attachDatabasePool } from "@vercel/functions";
import { drizzle } from "drizzle-orm/node-postgres";
import { Pool } from "pg";
import * as schema from "./schema";
const pool = new Pool({ connectionString: process.env.DATABASE_URL });
attachDatabasePool(pool);
export const db = drizzle({ client: pool, schema });
### 3. HTTP 适配器 (无 TCP 的边缘计算)
适用于 Cloudflare Workers、Netlify Edge、Deno Deploy。不支持交互式事务。
bash
npm install drizzle-orm @neondatabase/serverless
npm install -D drizzle-kit dotenv
typescript
// src/db.ts
import { drizzle } from "drizzle-orm/neon-http";
import { neon } from "@neondatabase/serverless";
const sql = neon(process.env.DATABASE_URL!);
export const db = drizzle(sql