-
Notifications
You must be signed in to change notification settings - Fork 0
supabase 開発方法&ルール
ko_shiro_hap edited this page Dec 19, 2023
·
5 revisions
npx supabase start
npx supabase stop
passwordは管理者より配布。
npx supabase migration list -p ************
- SQLを自作する方法
npx supabase migration new ********
********
は作りたいファイルの名前。なお本開発では基本的にこの方法は使わない。
- ローカルのダッシュボードで作成した差分をコードとして取り込む方法
http://localhost:54323 にアクセス。ローカル用のダッシュボードが開くのでそこでテーブル作成などの操作を実行。その後以下のコマンドを叩く。
npx supabase db diff -f ********
********
は作りたいファイルの名前。本開発ではこの方法を使用する。
npx supabase db reset
npx supabase db push
反映されるのはmigrationファイルの内容。レコードなどは反映されない。
npx supabase db pull
他の開発者がリモートDBを更新した際に使用する。基本的にリモートDBを直接操作することはありえないため、他の開発者から連絡があった場合に実行する。
DB変更後は基本的に以下のコマンドを叩いて都度型情報を更新する。
npx supabase gen types typescript --local > src/types/database.types.ts
npx supabase status
表示されるStudio URLのダッシュボードでDB操作を行う。また、 Inbucket URLではローカルで送信したメールなどの受信を行う。
以下は全てsupabase status
にて確認できる。
ローカル環境のダッシュボードであり、これを使用してDB周りの開発を行う。テーブルの作成・更新・削除などの操作を行なった場合は必ずsupabase db diff -f ********
コマンドを叩いてマイグレーションファイルを作成し、ダッシュボードでの操作とマイグレーションファイルとの整合性を保つことを徹底する。
ローカルでサインアップなどを行った場合、実際にメールが送信されることはない。しかし、それらのメールは以上のURLでアクセスできる@inbuket
で確認することができる。サインアップの認証もここで受け取ったメールのURLを踏むことで可能である。
- 必ず破壊的変更がないかを確認する。
- developにマージされる際にpushする。approveをもらっていないのにpushしてはならない。
- push完了後はリモートの変更を全開発者に報告し、pullを促す。
- そのテーブルやカラムが存在しないとエラーが起こるなどといった破壊的な変更があってはならない。 なぜならpushのタイミングはデプロイのタイミングと完全に合わせることが不可能なため、本番環境が動作しなくなる時間が発生してしまう。
- 必ず
supabase db diff -f ********
コマンドを叩いてマイグレーションファイルを作成する。 -
supabase migration new ********
のコマンドでマイグレーションファイルを作ることを禁止する。 なぜなら手書きのSQLはエラーの原因となる可能性が高くなることと、コードの書き方がバラつくためである。ダッシュボードを使用したGUIによる操作なら未然にエラーを防ぐことも可能なため上記コマンドでのマイグレーション操作よりも健全な開発が可能である。