mcpField
S
Supabase CLI

Supabase CLI

官方精选
supabase.com数据库与数据2.4ksupabase今天更新
代码仓库访问官网

关于 Supabase CLI

Supabase CLI 让开发者在本地启动完整的 Supabase 开发栈,包括 PostgreSQL 数据库、认证和实时功能。支持数据库迁移管理、Edge Functions 部署和自动生成的数据库类型定义。

主要功能

  1. 01在本地环境中启动 Supabase 开发栈
  2. 02管理和执行数据库架构迁移
  3. 03部署和测试 Edge Functions

适用场景

  1. 01离线开发 PostgreSQL 数据库应用
  2. 02在提交到生产环境前测试数据库变更
  3. 03编写和调试 Edge Functions 逻辑

安装

选择你的系统或包管理器,复制命令到终端运行。

$
brew install supabase/tap/supabase

安装完成后运行supabase --version确认安装成功。

命令示例

常用命令按使用顺序排列。

01
supabase init
02
supabase start
03
supabase db push

详细介绍

Supabase CLI

在终端中进行本地开发,并部署到 Supabase Platform。

npm Build License Discord


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/cliTypeScript/Bun CLI 软件包
apps/cli-goCLI 使用的 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 许可证发布。

评论

支持 Markdown