【Supabase】ローカル開発(CLI)チートシート
ローカルマシン上でSupabase開発を行う上で個人的によく使うCLIコマンドを整理しておきます。
公式情報
プロジェクト設定
初期化
ローカル開発プロジェクトフォルダ内にSupabaseフォルダを生成します。
npx supabase init
ローカルSupabaseの起動・停止
Supabaseサービスの起動
Docker上でSupabaseサービスを起動します。
npx supabase start
Supabaseサービスの終了
Docker上で起動中のSupabaseサービスを停止します。
ローカルデータベース上のデータは保持され、次回起動時に継続してデータを利用できます。
npx supabase stop
データのリセットも同時に行う場合はこちら。
npx supabase stop --no-backup
Database開発
マイグレーションファイルの作成
新規でマイグレーションファイルを作成します。
例:npx supabase migration new create_employees_table
npx supabase migration new [FILE_NAME]
マイグレーションファイルの削除
ローカルファイル削除用のコマンドは存在しません。
手動でマイグレーションファイルを削除する必要があります。
マイグレーションの実行(データベースのリセット)
データベースをリセットし、全てのマイグレーションを再実行します。
データベース中のデータは全て削除され、シードデータが入力されます。
npx supabase db reset
型定義の生成(Typescript)
ローカルのデータベーススキーマから型定義を生成します。
例:npx supabase gen types typescript --local > src/types/database.types.ts
npx supabase gen types typescript --local > [OUTPUT_FILE_NAME]
Edge Functions開発
関数ファイルの作成
新規で関数ファイルを作成します。
/supabase/functions/[FUNCTION_NAME]/index.ts
が作成されます。
npx supabase functions new [FUNCTION_NAME]
関数ファイルの削除
ローカルファイル削除用のコマンドは存在しません。
手動でディレクトリごと関数ファイル([FUNCTION_NAME]/index.ts
)を削除する必要があります。
環境変数の適用
ローカルのEdge Functionsで環境変数を扱う場合、serve
コマンドで環境変数ファイルパスを渡します。
例:npx supabase functions serve --env-file supabase/.env.local
npx supabase functions serve --env-file [ENV_FILE_PATH]
デプロイ
Supabaseアカウントへの接続
Supabase CLIをSupabaseアカウントに接続する。
コマンド実行後アクセストークンが求められるためこちらから作成しておく。
npx supabase login
Supabaseリモートデータベースとのリンク
ローカル開発プロジェクトをデータベースにリンクします。
[REFERENCE_ID]はSupabaseのProject Settings > General
より確認できます。
コマンド実行後のパスワードはデータベース作成時のパスワードを入力してください。
npx supabase link --project-ref [REFERENCE_ID]
Databaseデプロイ
リモートデータベースへマイグレーションをプッシュします。
(既に適用済みのマイグレーションはスキップされます。)
npx supabase db push
Edge Functionsデプロイ
リモートデータベースへEdge Functionsをプッシュします。
npx supabase functions deploy
関数名を指定して個別にデプロイも可能です。
npx supabase functions deploy [FUNCTION_NAME]
以下でリモートデータベース上のEdge Functionsの一覧を確認できます。
supabase functions list
リモートデータベース上のEdge Functionsを削除します。
supabase functions delete [FUNCTION_NAME]
Secretsデプロイ
リモートデータベースへ環境変数をプッシュします。
例:npx supabase secrets set --env-file ./supabase/.env.staging
npx supabase secrets set --env-file [ENV_FILE_PATH]
以下でリモートデータベースのSecrets設定状況を確認できます。
npx supabase secrets list
Discussion