Supabase CLI について
Supabase CLI は、PostgreSQL、認証、リアルタイム機能を含む完全な Supabase 開発環境をローカルマシンで実行できます。データベースマイグレーションの管理、Edge Functions のデプロイ、データベース型の自動生成に対応しています。
主な機能
- 01ローカルで完全な Supabase 開発スタックを起動する
- 02データベーススキーママイグレーションを管理・実行する
- 03Edge Functions をデプロイしてテストする
活用シーン
- 01PostgreSQL バックエンドアプリケーションをオフラインで開発する
- 02本番環境へのプッシュ前にデータベース変更をテストする
- 03Edge Functions をローカルで記述・デバッグする
インストール
OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。
インストール後に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 モノレポです。公開パッケージは 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 クライアント |
新規クローン後、エージェントや開発者が調査する際に使用する参照リポジトリをインストールします。
pnpm repos:install
コントリビューション
問題が明確で、変更範囲が小さく、ユーザー向けの動作に即したテストがある、焦点の絞られたプルリクエストを歓迎します。
まず issue を作成し、作業を始める前にメンテナーが open-for-contribution ラベルを付けるまでお待ちください。ラベル付きのオープンな issue にリンクしていない外部からのプルリクエストは、自動的にクローズされます。詳しいワークフローについては、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 のタイトルには、次のように Conventional Commits の形式を使用してください。
fix(cli): handle linked projects without cached service versions
ライセンス
Supabase CLI パッケージは MIT ライセンスの下で公開されています。