🍆

Supabaseの細かい情報

2024/04/05に公開

Supabase について知っておくと便利そうな細かな情報をまとめてみました。
主に Supabase の中の人 タイラーさん のポストをまとめています。

Supabaseの読み方は?

多くの方が初見では「スパベース」と呼んでいるかと思いますが、日本語においては「スーパベース」がピッタリだと言われています。

https://twitter.com/dshukertjrjp/status/1691736796554834172

ただし、表記上だと「スーパ」ですが口語では「スーパー」で良いかもしれません。

▼ タイラーさんによる「スーパーベース」読みが確認できる。(0:34頃)
https://youtu.be/XWYkpQRLsFk?si=b42DkCwNDvOA-NpQ&t=32

料金表の bandwidth はエグレスコストだけがカウントされる

https://supabase.com/pricing

料金ページで bandwidth との表記があります。
疑問に感じるのが「上り方向(ingress)」も対象なのかどうかです。

結論としては「下り方向(egress)」だけがカウント対象となるようです。(Githubのissuesで中の人が言及していた投稿も見た記憶があるのですがページを思い出せず...。)

下記ページからエグレスコストのみが対象ということがお分かり頂けるかと思います。

https://supabase.com/docs/guides/platform/org-based-billing#unified-egress

PrismaなどのORMを使うべきかどうか?

Supabase の用途によって考え方が異なるようです。

  • Supabase を単にデータベースとして使おうとしているなら ORM を使ってもいいと思う。(DBを移行しやすい状態にする)
  • supabase-js などを使って開発するなら、Supabase CLI でコマンドを用いて開発を進めた方が楽だろう。( Supabase CLI

https://twitter.com/dshukertjrjp/status/1771725005144908077

Supabase CLI にはマイグレーション機能だったり、TypeScript型をDBの情報を読み取って生成してくれる便利な機能があります。

SupabaseのGUI上でテーブル等を作成して、 supabase db diff を実行すれば差分でマイグレーションファイルを作ってくれます。また、型情報も型ファイルをインポートして、 const supabase = createBrowserClient<Database>() のように記述しておくだけで適用されます。

そしてなんと、 PostgreSQL で作成した自作関数の返り値も型データとして吐き出してくれます!

特に理由が無ければ Supabase CLI を使っておけば とりあえずOK という気軽さが魅力的ですね。

PlanetScaleにあったブランチ機能も無くはない。

PlanetScaleの無料プランが廃止されて個人開発には高すぎる金額のため、Supabaseに避難して来た方も多いのではないでしょうか。

Supabase にも一応はブランチ機能が備わっています。(2024/04/05現在: パブリックアルファ版。Proプラン以上なので有料機能ですが...。)

https://twitter.com/dshukertjrjp/status/1773634581494628507

個人開発としては無料で始めて、プロダクトが成長してから Pro 版を使えば間に合うことでしょう。将来的に正式版のブランチ機能が使えるかもしれないという期待感を持てるだけでも、かなり嬉しいのではないでしょうか。

Supabaseはオープンソースである

これは既にご存知の方も多いと思います。
Supabaseはオープンソースで開発されています。

https://github.com/supabase/

考えたくありませんが、万が一 Supabase社 が解散してしまっても、Supabaseがすぐに使えないという自体は避けられます。(2022年8月時点で 8,000万ドル の資金調達を実施しているので、しばらくは問題ないかと思います。)

https://supabase.com/blog/supabase-series-b

匿名認証の正式リリースがもうすぐ来る!

待望の匿名認証が遂にSupabaseに加わります。
2024年4月5日時点では正式版ではないようですが、4月中旬の ローンチウィーク に発表されるのかも...?

https://supabase.com/docs/guides/auth/auth-anonymous

https://twitter.com/stojaaan/status/1774873387703132317

Supabaseの管理画面からマークダウンでプレビューできる

下記を見て頂いた方が分かりやすいかと思います。

https://twitter.com/dshukertjrjp/status/1752660887507444053

GUIのCSVインポート機能は極力使わない方がいいかもしれない

Supabaseにはテーブル作成画面にて「Import data via spreadsheet」というCSVファイルをインポートしてテーブルを構築してくれる便利な機能があります。

しかし、この機能は極力使わない方がいいかもしれません。
というのも文字化けが発生する可能性があるためです。

実際に43万行ぐらいの日本語を含むデータをインポートしたところ200件強の文字化けが発生してしまいました。文字コードを揃えていても発生してしまいました。

代わりに DBeaver でインポートを行ったところ文字化けせず済みました。

https://zenn.dev/masa5714/articles/f2ad6883a1bd3d

さいごに

タイラーさん のアカウントは必ずフォローしておきましょう!

実装中に困ることが出てくると情報が少なくて困ることも多くありますが、それを差し引いても Supabase の魅力は十分にあります。

単にデータベースとして見るだけではなく Supabase の機能をどんどん活用していきましょう。

Discussion