@neondatabase/serverless 驱动,或者通过像 Drizzle 这样的 ORM 来使用。
Drizzle ORM 同时支持类似 SQL 的“查询构建器”API 和类似 ORM 的 Queries API。首先创建一个项目目录,使用 bun init 初始化该目录,并安装 Drizzle 和 Neon 无服务器驱动。
terminal
创建一个
.env.local 文件,并添加你的 Neon Postgres 连接字符串。
.env.local
我们将使用 Neon 无服务器驱动连接 Neon 数据库,并用 Drizzle 包装为一个数据库实例。
为了演示数据库的使用,在
index.ts 中添加以下代码。
然后使用 Bun 运行
index.ts。
terminal
我们可以使用 Drizzle ORM 的原语定义数据库架构。创建一个
schema.ts 文件,并添加以下代码。
然后使用
drizzle-kit CLI 生成初始的 SQL 迁移文件。
这将在项目中创建一个名为
drizzle 的新目录,包含 .sql 迁移文件和 meta 目录。
File Tree
我们可以通过一个简单的
migrate.ts 脚本来执行这些迁移。该脚本会新建一个与 Neon 数据库的连接,并执行 drizzle 目录中所有尚未执行的迁移。
migrate.ts
可以用
bun 运行此脚本来执行迁移。
terminal
现在,我们可以为数据库添加一些数据。创建一个
seed.ts 文件,内容如下。
然后运行此文件。
terminal
现在我们已经有了带有架构和示例数据的数据库,可以使用 Drizzle 进行查询。将
index.ts 的内容替换为以下代码。
接着运行该文件。你应该看到我们插入的三位作者信息。
terminal
本示例使用了 Neon 无服务器驱动的基于 HTTP 的 SQL 功能。Neon 的无服务器驱动还提供
Client 和 Pool 构造器,以支持会话、交互式事务和兼容 node-postgres。详见 Neon 文档 获取完整介绍。
更多关于 Drizzle ORM 的使用文档,请参考 Drizzle 官网。