SupabaseのCLIでローカル環境を構築する(Local Development)

2022.06.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。データアナリティクス事業本部 サービスソリューション部の北川です。

Supabaseとは、firebaseの代替サービスとも言われるBaasです。データベースにRDBを採用しているのが特徴です。

今回は以下を参考に、supabase CLIを使用したローカル環境の構築してみました。

試してみた

インストールが必要なもの

  • Git
  • Docker
  • Supabase CLI

環境構築

Supabase CLIのインストール

$ brew install supabase/tap/supabase

以下のURLからtokenを発行し、コピーします。

Supabaseにログインし、コピーしたtokenを貼り付けます。

$ supabase login
You can generate an access token from https://app.supabase.io/account/tokens.
Enter your access token: "your token"
Finished supabase login.

任意のフォルダに移動します。

$ cd sample-project

Supabaseを初期化します。

$ supabase init

成功すると、supbase/config.tomlというファイルが作成されます。

Supabaseを起動します。startコマンドを実行することで、Dockerによって構築されます。そのため、一度目は時間がかかります。

$ supabase start

satusコマンドによって、環境のURLを確認することができます。

supabase status

表示されたAPI URLに移動すると、ローカルの管理画面が表示されます。Supabaseでは、studioと呼んでいます。

中身を確認すると分かる通り、storageなどのメニューにはまだ対応していないようです。こちらは随時、更新されていくと思います。

作成されたプロジェクトのサイドバーからSQL Editorに移動し、公式と同じクエリを実行します。右下の「RUN」コマンドから実行できます。

サイドバーからTableEditorに移動し、テーブルを確認します。

次に作成したテーブルを、ローカルのファイルに反映します。

supabase db commit employees

成功すると、supabase/migrationsフォルダにsqlファイルが追加されます。

Supabaseダッシュボードに、ローカルからデータを反映させます。supabase/seed.sqlに、以下のクエリを記述します。supabase/seed.sqlはsupabase initコマンドを実行したときに自動作成されるようですが、自分の環境には作成されませんでした。ファイルがない場合は、seed.sqlを手動で作成します。

supabase/seed.sql

insert into public.employees (name)
values 
  ('Erlich Backman'),
  ('Richard Hendricks'),
  ('Monica Hall');

データベースを一度初期化して、テーブルを確認します。

supabase db reset

テーブルにデータが反映されました。

まとめ

今回は、SupabaseのCLIを使用してローカルの開発環境を構築してみました。基本的には手順通りに進めるだけでしたが、文字を追うのと実際に動かすのとでは、学びの質が違うなと感じました。まだ使用していないコマンドもあるので、今後も手を動かしながら試してみたいと思います。

ではまた。