Skip to main content
Neon 是一款完全托管的无服务器 Postgres,通过分离计算和存储,提供自动扩缩容、分支和无限存储等功能。你可以直接通过 @neondatabase/serverless 驱动在 Bun 中使用 Neon,也可以通过 Drizzle 等 ORM 使用。 Drizzle ORM 同时支持类似 SQL 的“查询构建器”API 和类似 ORM 的 Queries API。首先创建一个项目目录,使用 bun init 初始化,然后安装 Drizzle 和 Neon 无服务器驱动
terminal

创建一个 .env.local 文件,并添加你的 Neon Postgres 连接字符串
.env.local

db.ts 中,使用 Neon 无服务器驱动连接到 Neon 数据库,并将其包装在 Drizzle 数据库实例中。
db.ts

为了演示数据库的使用,在 index.ts 中添加以下代码。
index.ts

然后使用 Bun 运行 index.ts
terminal

使用 Drizzle ORM 的基础组件为数据库定义架构。创建一个 schema.ts 文件,并添加以下代码。
schema.ts

然后使用 drizzle-kit CLI 生成初始 SQL 迁移。

该命令会创建一个 drizzle 目录,其中包含一个 .sql 迁移文件和一个 meta 目录。
文件树

使用 migrate.ts 脚本执行这些迁移。该脚本会打开与 Neon 数据库的新连接,并执行 drizzle 目录中所有尚未执行的迁移。
migrate.ts

使用 bun 运行该脚本。
terminal

现在向数据库中添加一些数据。创建一个 seed.ts 文件,并添加以下内容。
seed.ts

然后运行此文件。
terminal

数据库现在已经拥有架构和示例数据。将 index.ts 的内容替换为以下代码,即可使用 Drizzle 查询数据库。
index.ts

然后运行该文件。它会打印出你插入的三位作者。
terminal

本示例使用了 Neon 无服务器驱动的基于 HTTP 的 SQL 功能。Neon 的无服务器驱动还提供 ClientPool 构造器,以支持会话、交互式事务和兼容 node-postgres。详见 Neon 文档 获取完整介绍。 请参阅 Drizzle 网站 获取完整文档。