SuperAPI AI 工具集

supabase-cli

部署与运维

查看项目

更新于 10-15 11:28

技能介绍

Supabase CLI 是 Supabase 的命令行工具,提供从本地开发到部署的完整命令参考。

用途

Supabase CLI 用于在本地运行 Supabase 服务栈、管理数据库迁移、生成类型定义、部署 Edge Functions,以及管理远程项目。它适合需要在本地模拟 Supabase 云端环境、保持数据库结构版本化、并自动化部署流程的开发者。

安装

支持多种安装方式:

  • NPM(推荐用于项目):npm install supabase --save-dev,然后使用 npx supabase [command]。
  • Homebrew(macOS/Linux):brew install supabase/tap/supabase。
  • Scoop(Windows):先添加 bucket,再安装。

前置条件:本地开发需要 Docker。

项目设置

  • 初始化项目:supabase init,会创建 supabase/config.toml、supabase/migrations/ 和 supabase/seed.sql。
  • 链接远程项目:supabase link --project-ref <project-ref>,项目 ref 可在 Dashboard → Project Settings → General 获取。

本地开发

  • 启动本地服务栈:supabase start,会启动 PostgreSQL、PostgREST、GoTrue Auth、Realtime、Storage、Studio 和 Inbucket(邮件测试)。输出 URL 包括 API、数据库、Studio 和 Inbucket。
  • 停止:supabase stop(保存数据)或 supabase stop --no-backup(删除所有数据)。
  • 查看状态:supabase status,显示 URL、API 密钥和服务状态。

数据库命令

  • 创建迁移:supabase migration new <name>,生成带时间戳的 SQL 文件。
  • 从本地变更生成迁移:supabase db diff -f <name>,可指定 schema。
  • 应用迁移:本地用 supabase migration up,推送到远程用 supabase db push,可用 --dry-run 预览。
  • 拉取远程变更:supabase db pull。
  • 重置本地数据库:supabase db reset,重建数据库并应用所有迁移。
  • 列出迁移:supabase migration list,显示本地与远程状态。
  • 回滚迁移:supabase migration down --count <n>。
  • 压缩迁移:supabase migration squash --version <version>,用于清理迁移历史。

类型生成

生成 TypeScript 类型:

  • 从本地:supabase gen types typescript --local > database.types.ts
  • 从链接的远程:supabase gen types typescript --linked > database.types.ts
  • 从指定项目:supabase gen types typescript --project-id "your-id" > database.types.ts

Edge Functions

  • 创建函数:supabase functions new hello-world,生成 supabase/functions/hello-world/index.ts。
  • 本地服务:supabase functions serve,可指定函数、环境文件和跳过 JWT 验证。
  • 部署:supabase functions deploy,可指定函数或使用 --no-verify-jwt。
  • 测试:使用 curl 向本地函数端点发送请求。

密钥管理

  • 设置密钥:supabase secrets set KEY=value,支持多个或从 .env 文件设置。
  • 列出密钥:supabase secrets list。
  • 移除密钥:supabase secrets unset KEY。

项目管理

  • 列出组织:supabase orgs list。
  • 列出项目:supabase projects list。
  • 创建项目:supabase projects create <name> --org-id <id> --region <region>。
  • 删除项目:supabase projects delete --project-ref <ref>。
  • 更新远程配置:supabase projects update-config。

数据库检查

提供多种检查命令,如缓存命中率、未使用索引、表膨胀、长时间运行查询、活跃连接等,可针对本地或链接的远程数据库。

备份与恢复

  • 备份:使用 supabase db dump 导出角色、schema 或数据。
  • 恢复:使用 psql 按顺序执行角色、schema 和数据文件。

常用标志

包括 --debug、--local、--linked、--project-ref、--db-url、--dry-run、-f 等。

限制

本地开发需要 Docker。部分命令需要链接远程项目或提供项目 ref。具体平台支持、收费和价格信息暂未提供。