Skip to main content
Neon 是一个完全托管的无服务器 Postgres,将计算和存储分离,提供自动扩缩、分支和无底存储等功能。你可以通过 @neondatabase/serverless 驱动程序直接从 Bun 使用 Neon,也可以通过像 Drizzle 这样的 ORM 使用。 Drizzle ORM 支持类似 SQL 的”查询构建器”API 和类似 ORM 的查询 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

数据库现在有了模式和示例数据。用 Drizzle 查询它,将 index.ts 的内容替换为以下内容。
index.ts

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

本示例使用了 Neon 无服务器驱动的 SQL-over-HTTP 功能。Neon 的无服务器驱动还暴露了 ClientPool 构造函数,以支持会话、交互式事务和 node-postgres 兼容性。请参考 Neon 文档 了解完整概述。 请参考 Drizzle 网站 查看完整文档。