在 Supabase 中使用 Drizzle ORM
本教程演示了如何在 Supabase Edge Functions 中使用 Drizzle ORM。
- 您应该安装了最新版本的 Supabase CLI。
- 您应该已安装 Drizzle ORM 和 Drizzle kit。您可以通过运行以下命令完成此操作:
- 您应该已安装了 Docker Desktop。这是本地开发的先决条件。请按照官方文档进行安装。
要了解如何在本地计算机上创建基本的 Edge Function,然后部署它,请参阅 Edge Functions 快速入门。
初始化新的 Supabase 项目
在本地计算机上的一个文件夹中创建一个新的 Supabase 项目:
它将创建一个带有 config.toml
文件的 supabase
文件夹:
如果您使用的是 Visual Studio Code,请按照 Supabase 文档设置 Deno 的设置。
创建新的 Edge Function
运行 supabase functions new [FUNCTION_NAME]
命令以创建新的 Edge Function:
它将在 supabase/functions
目录中创建一个名为该函数名的新文件夹:
设置导入
在 supabase/functions
目录中创建一个 import_map.json
文件,并为 Drizzle ORM 添加导入:
了解更多内容,请查看文档。
创建表
在 supabase/functions/common
目录中创建一个 schema.ts
文件,并声明表模式:
设置 Drizzle 配置文件
Drizzle 配置 - 一个由 Drizzle Kit 使用的配置文件,包含有关数据库连接、迁移文件夹和模式文件的所有信息。
在项目的根目录下创建一个 drizzle.config.ts
文件,并添加以下内容:
在本教程中,我们将使用 Drizzle kit 为我们的模式生成迁移。
生成迁移
运行 drizzle-kit generate
命令生成迁移:
它将在 supabase/migrations
目录中创建一个新的迁移文件:
应用迁移
要应用迁移并启动 Supabase 本地开发堆栈,请运行以下命令:
或者,您可以使用 migrate()
助手应用迁移,该助手适用于每个受支持的驱动程序。在文档中了解更多关于此迁移过程的信息。
连接 Drizzle ORM 到您的数据库
在 supabase/common
目录中创建一个 db.ts
文件,并设置您的数据库配置:
SUPABASE_DB_URL
是直接数据库连接的默认环境变量。在 Supabase Edge Functions 的文档中了解更多关于管理环境变量的内容。
在本地测试代码
运行以下命令在本地测试您的函数:
在浏览器中导航到路由(例如 /drizzle-tutorial):
将本地项目链接到托管的 Supabase 项目
您可以在仪表板中创建新的 Supabase 项目,或通过以下链接创建新的 Supabase 项目:链接。
复制引用 ID
,并使用以下命令将本地开发项目链接到托管的 Supabase 项目:
通过以下命令将模式更改推送到托管 Supabase 项目:
设置环境变量
进入数据库设置,从连接字符串
部分复制 URI。确保使用连接池
和事务
模式连接到您的数据库。记得用您实际的数据库密码替换密码占位符。
运行以下命令设置环境变量:
更新 supabase/functions/common/db.ts
目录中的 db.ts
文件以使用 DATABASE_URL
环境变量:
在 Supabase Edge Functions 的文档中了解更多关于管理环境变量的内容。
部署您的函数
通过以下命令部署您的函数:
最后,您可以使用部署项目的URL,并导航到您创建的路由(例如 /drizzle-tutorial)来访问您的边缘函数。