Neon 是支持分支、自动扩缩容和即时开通的无服务器 PostgreSQL。本技能面向部署到 Neon 或构建无服务器应用的场景。
用途与主要能力:使用 @neondatabase/serverless 驱动连接数据库;通过 HTTP 方式执行一次性查询,适合边缘函数与无服务器环境;通过 WebSocket 连接池支持长连接与事务;使用 Neon 分支(写时复制克隆)进行功能开发与预览环境隔离;配置连接池与自动扩缩容(最小 0.25 CU、最大 8 CU、默认 5 分钟缩容至零);与 Drizzle ORM 集成。
安装:npm install @neondatabase/serverless,或 pnpm add / yarn add / bun add 同名包。先在 console.neon.tech 创建项目并复制连接字符串。
连接字符串区分直连(迁移、脚本)与池化(应用),池化端点需在主机名端点加 -pooler。环境变量示例:DATABASE_URL 与 DATABASE_URL_POOLED,均需 sslmode=require。
使用方式:HTTP 驱动用 import { neon } from "@neondatabase/serverless"; const sql = neon(process.env.DATABASE_URL!); 后以模板字符串查询并传参;WebSocket 用 Pool 管理事务(BEGIN/COMMIT/ROLLBACK)。Drizzle 集成提供 neon-http 与 neon-serverless 两种驱动。分支管理通过 neonctl:npm install -g neonctl,随后 neonctl auth、branches list、branches create --name feature-x、connection-string、branches delete。CI/CD 可用 neondatabase/create-branch-action@v5 在 PR 中创建分支并运行迁移。
适用场景:边缘函数、无服务器 API 路由、一次性查询、长期运行进程、Next.js App Router 集成、迁移与分支工作流。
限制与注意:无服务器环境避免使用 Pool 以防连接耗尽;查询应使用参数化模板而非字符串拼接,以防 SQL 注入;冷启动可调整 fetchOptions 超时;NeonDbError 可识别唯一约束冲突(错误码 23505)。具体定价、配额与地区可用性暂未提供。