supabase/cli
GitHub: supabase/cli
Supabase 官方命令行工具,提供本地开发环境搭建、数据库迁移管理、边缘函数部署和类型生成等一站式开发运维能力。
Stars: 1930 | Forks: 399
# Supabase CLI
[](https://coveralls.io/github/supabase/cli?branch=develop) [](https://bitbucket.org/supabase-cli/setup-cli/pipelines) [
](https://gitlab.com/sweatybridge/setup-cli/-/pipelines)
[Supabase](https://supabase.io) 是一个开源的 Firebase 替代品。我们正在使用企业级开源工具构建 Firebase 的功能。
此仓库包含 Supabase CLI 的所有功能。
- [x] 在本地运行 Supabase
- [x] 管理数据库迁移
- [x] 创建和部署 Supabase Functions
- [x] 直接从你的数据库 schema 生成类型
- [x] 向 [Management API](https://supabase.com/docs/reference/api/introduction) 发起已认证的 HTTP 请求
## 入门指南
### 安装 CLI
可通过 [NPM](https://www.npmjs.com) 作为 dev dependency 安装。安装命令:
```
npm i supabase --save-dev
```
当使用 yarn 4 安装时,你需要通过以下 nodejs 配置禁用实验性的 fetch。
```
NODE_OPTIONS=--no-experimental-fetch yarn add supabase
```
### 运行 CLI
```
supabase bootstrap
```
或者使用 npx:
```
npx supabase bootstrap
```
bootstrap 命令将引导你通过其中一个 [starter](https://github.com/supabase-community/supabase-samples/blob/main/samples.json) 模板来设置 Supabase 项目。
## 文档
命令和配置参考可以在[这里](https://supabase.com/docs/reference/cli/about)找到。
## 破坏性变更
对于直接影响 CLI 命令、标志和配置的变更,我们遵循语义化版本控制。
但是,由于对其他服务镜像的依赖,我们无法保证 schema 迁移、seed.sql 和生成的类型在同一 CLI 主版本号下始终有效。如果你需要此类保证,我们建议你在 package.json 中固定一个特定的 CLI 版本。
## 开发
从源码运行:
```
# Go >= 1.22
go run . help
```
macOS
可通过 [Homebrew](https://brew.sh) 安装。安装命令: ``` brew install supabase/tap/supabase ``` 安装 beta 发布频道: ``` brew install supabase/tap/supabase-beta brew link --overwrite supabase-beta ``` 升级: ``` brew upgrade supabase ```Windows
可通过 [Scoop](https://scoop.sh) 安装。安装命令: ``` scoop bucket add supabase https://github.com/supabase/scoop-bucket.git scoop install supabase ``` 升级: ``` scoop update supabase ```Linux
可通过 [Homebrew](https://brew.sh) 及 Linux 软件包进行安装。 #### 通过 Homebrew 安装命令: ``` brew install supabase/tap/supabase ``` 升级: ``` brew upgrade supabase ``` #### 通过 Linux 软件包 Linux 软件包在 [Releases](https://github.com/supabase/cli/releases) 中提供。要安装,请根据你的包管理器下载 `.apk`/`.deb`/`.rpm`/`.pkg.tar.zst` 文件,并运行相应的命令。 ``` sudo apk add --allow-untrusted <...>.apk ``` ``` sudo dpkg -i <...>.deb ``` ``` sudo rpm -i <...>.rpm ``` ``` sudo pacman -U <...>.pkg.tar.zst ```其他平台
你也可以在无需包管理器的情况下,通过 [go modules](https://go.dev/ref/mod#go-install) 安装 CLI。 ``` go install github.com/supabase/cli@latest ``` 在 `$PATH` 中为二进制文件添加符号链接以便于访问: ``` ln -s "$(go env GOPATH)/bin/cli" /usr/bin/supabase ``` 这也适用于其他非标准的 Linux 发行版。社区维护的软件包
可通过 [pkgx](https://pkgx.sh/) 获取。软件包脚本在[这里](https://github.com/pkgxdev/pantry/blob/main/projects/supabase.com/cli/package.yml)。 在你的工作目录中安装: ``` pkgx install supabase ``` 可通过 [Nixpkgs](https://nixos.org/) 获取。软件包脚本在[这里](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/tools/supabase-cli/default.nix)。标签:API管理, BaaS, EVTX分析, Firebase替代, GNU通用公共许可证, Homebrew, Node.js, PostgreSQL, Scoop, Supabase, 后端即服务, 备份, 威胁情报, 开发者工具, 开源, 数据库管理, 数据库迁移, 无服务器, 日志审计, 测试用例, 类型生成, 请求拦截, 边缘函数