本教程演示了如何使用 Drizzle ORM 连接 Supabase 数据库。每个 Supabase 项目都附带一个完整的 Postgres 数据库。
This guide assumes familiarity with:
- 您应该已安装
dotenv
包以管理环境变量。有关该包的更多信息,请点击此处。
- 您应该已安装
postgres
包以连接到 Postgres 数据库。有关该包的更多信息,请点击此处。
请查看 Supabase 文档,了解如何使用 Drizzle ORM 连接到数据库。
设置 Supabase 和 Drizzle ORM
创建一个新的 Supabase 项目
您可以在 仪表板 中创建新的 Supabase 项目,或通过此 链接 创建。
设置连接字符串变量
导航到 数据库设置,并从 连接字符串
部分复制 URI。确保使用 连接池
。请记得用您的实际数据库密码替换密码占位符。
将 DATABASE_URL
变量添加到您的 .env
或 .env.local
文件中。
有关连接池和池模式的更多信息,请查看 文档。
将 Drizzle ORM 连接到您的数据库
在 src/db
目录中创建一个 index.ts
文件,并设置您的数据库配置:
创建表
在 src/db
目录中创建一个 schema.ts
文件,并声明您的表:
设置 Drizzle 配置文件
Drizzle 配置 - 一个由 Drizzle Kit 使用的配置文件,包含有关您的数据库连接、迁移文件夹和架构文件的所有信息。
在项目根目录下创建一个 drizzle.config.ts
文件,并添加以下内容:
将更改应用于数据库
您可以使用 drizzle-kit generate
命令生成迁移,然后使用 drizzle-kit migrate
命令运行它们。
生成迁移:
这些迁移存储在 supabase/migrations
目录中,正如您在 drizzle.config.ts
中指定的那样。该目录将包含更新您的数据库架构所需的 SQL 文件,以及一个用于存储不同迁移阶段架构快照的 meta
文件夹。
生成迁移的示例:
运行迁移:
了解有关 迁移过程 的更多信息。您还可以使用 Supabase CLI 应用迁移:
- 对于已存在的表,手动审查从
npx drizzle-kit generate
生成的迁移文件,并注释或调整任何不安全的纯创建语句(例如,CREATE SCHEMA "auth";
),确保安全的条件创建(例如,CREATE TABLE IF NOT EXISTS "auth"."users"
)得到妥善处理。
或者,您可以使用 Drizzle kit push 命令 直接将更改推送到数据库:
IMPORTANT
Push 命令适用于需要快速测试新架构设计或在本地开发环境中进行更改的情况,使您能够快速迭代,而无需管理迁移文件的开销。
要使用 Supabase CLI 应用迁移,您应遵循以下步骤:
使用 Drizzle Kit 生成迁移:
初始化本地 Supabase 项目:
将其链接到您的远程项目:
将更改推送到数据库:
基本文件结构
这是项目的基本文件结构。在 src/db
目录中,我们有与数据库相关的文件,包括在 index.ts
中的连接和在 schema.ts
中的架构定义。
查询示例
例如,我们可以创建 src/db/queries
文件夹,并为每个操作(插入、选择、更新、删除)单独创建文件。
插入数据
有关插入查询的更多信息,请参阅 文档。
选择数据
有关选择查询的更多信息,请参阅 文档。
或者,您可以使用 关系查询语法。
更新数据
有关更新查询的更多信息,请参阅 文档。
删除数据
有关删除查询的更多信息,请参阅 文档。