使用 Supabase Edge Functions 的 Drizzle
本教程演示了如何使用 Drizzle ORM 与 Supabase Edge Functions。
- 你应该安装最新版本的 Supabase CLI。
- 你应该安装 Drizzle ORM 和 Drizzle kit。你可以通过运行以下命令来完成:
- 你应该安装 Docker Desktop。它是本地开发的前提条件。请按照官方 文档 进行安装。
要了解如何在本地计算机上创建基本的 Edge Function 并部署,请参阅 Edge Functions 快速入门。
初始化新的 Supabase 项目
在本地计算机的文件夹中创建一个新的 Supabase 项目:
这将创建一个 supabase
文件夹和 config.toml
文件:
如果你使用 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 中环境变量的更多信息,请查阅 文档。
本地测试代码
运行以下命令以本地测试你的函数:
在浏览器中导航到创建的路由 (e.g. /drizzle-tutorial)
:
将本地项目链接到托管的 Supabase 项目
你可以在 仪表板 中创建新的 Supabase 项目或通过此 链接。
复制 参考ID
,并通过运行以下命令将本地开发项目链接到托管的 Supabase 项目:
通过运行以下命令将模式更改推送到托管的 Supabase 项目:
设置环境变量
导航到 数据库设置,从 连接字符串
部分复制 URI。确保使用 连接池
和 事务
模式连接到你的数据库。记得将密码占位符替换为实际的数据库密码。
在 文档 中阅读有关连接池的更多信息。
运行以下命令来设置环境变量:
更新 supabase/functions/common/db.ts
文件以使用 DATABASE_URL
环境变量:
了解更多关于管理 Supabase Edge Functions 中的环境变量的信息,请查看 文档。
部署你的函数
通过运行以下命令部署你的函数:
最后,你可以使用部署项目的 URL,导航到你创建的路由 (e.g. /drizzle-tutorial)
来访问你的 Edge Function。