关于 Supabase CLI
Supabase CLI 让开发者在本地启动完整的 Supabase 开发栈,包括 PostgreSQL 数据库、认证和实时功能。支持数据库迁移管理、Edge Functions 部署和自动生成的数据库类型定义。
主要功能
- 01在本地环境中启动 Supabase 开发栈
- 02管理和执行数据库架构迁移
- 03部署和测试 Edge Functions
适用场景
- 01离线开发 PostgreSQL 数据库应用
- 02在提交到生产环境前测试数据库变更
- 03编写和调试 Edge Functions 逻辑
安装
选择你的系统或包管理器,复制命令到终端运行。
安装完成后运行supabase --version确认安装成功。
命令示例
常用命令按使用顺序排列。
详细介绍
在终端中进行本地开发,并部署到 Supabase Platform。
Supabase CLI 将 Supabase Platform 带到你的终端中。运行完整的本地技术栈、管理数据库迁移、部署 Edge Functions、生成类型,并自动化项目工作流。
安装
# YOLO
curl -fsSL https://raw.githubusercontent.com/supabase/cli/main/install | bash
# npm
npm install -D supabase # or bun/pnpm/yarn add -D supabase
npm install -D supabase@beta # beta channel
# macOS and Linux
brew install supabase/tap/supabase # always up to date
brew install supabase # official formula, may be delayed
brew install supabase/tap/supabase-beta # beta channel
# Windows
scoop bucket add supabase https://github.com/supabase/scoop-bucket.git
scoop install supabase
scoop install supabase-beta # beta channel
# Linux packages
# Download .apk, .deb, .rpm, or .pkg.tar.zst from GitHub Releases.
Linux 软件包可从 Releases 获取。社区维护的软件包也可通过 pkgx 和 Nixpkgs 获取。
开始本地开发
创建 Supabase 工作区并启动本地技术栈:
supabase init
supabase start
supabase status
本地技术栈包括 Postgres、Auth、Realtime、Storage、Edge Functions 和 Supabase API。
从模板开始:
supabase bootstrap
关联项目
将本地工作区连接到托管的 Supabase 项目:
supabase login
supabase link
管理数据库
创建迁移、比较架构,并在本地或关联的项目中应用更改:
supabase migration new create_profiles
supabase db diff
supabase db push
supabase db reset
部署 Edge Functions
在同一个项目工作区中构建、运行和部署函数:
supabase functions new hello-world
supabase functions serve
supabase functions deploy hello-world
生成类型
从本地数据库或关联的项目生成 TypeScript 类型:
supabase gen types --local
supabase gen types --linked
参考
在任何命令中使用 --help 查看标志和示例:
supabase db --help
supabase functions deploy --help
开发
此代码库是一个 pnpm monorepo。已发布的软件包位于 apps/cli。
pnpm install
pnpm check:all
cd apps/cli
pnpm types:check
pnpm run test:unit && pnpm run test:integration
实用的源码入口:
| 路径 | 用途 |
|---|---|
apps/cli | TypeScript/Bun CLI 软件包 |
apps/cli-go | CLI 使用的 Go CLI 源码 |
packages/stack | 本地 Supabase 技术栈运行时 |
packages/config | 配置架构和生成的类型 |
packages/api | 类型化的 Supabase Management API 客户端 |
全新克隆后,安装用于 Agent 和开发者检查的参考代码库:
pnpm repos:install
贡献
我们欢迎目标明确的拉取请求:问题清晰、改动范围小,并包含符合面向用户行为的测试。
请先提交议题,并等待维护者添加 open-for-contribution 标签后再开始工作——未关联已标记且处于开放状态议题的外部拉取请求会被自动关闭。完整流程请参阅 CONTRIBUTING.md。
提交 PR 前,请在代码库根目录运行全仓库质量检查,
然后在每个修改过的工作区运行相关软件包测试。对于每个修改过的
TypeScript 工作区(或声明了该脚本的任何工作区),还要运行其
pnpm types:check 脚本。例如:
# From the repository root:
pnpm check:all
# From apps/cli (a touched TypeScript workspace):
cd apps/cli
pnpm types:check
pnpm run test:unit && pnpm run test:integration
# Repeat the relevant package tests for every touched workspace; run
# pnpm types:check there too when that workspace declares the script.
PR 标题必须遵循约定式提交规范,例如:
fix(cli): handle linked projects without cached service versions
许可证
Supabase CLI 软件包采用 MIT 许可证发布。