【Supabase】CSVインポートが便利すぎた話
ぽちぽちのつどいGW Advent(?) Calendar10日目の記事です!
どうも!GW期間毎日書いてるとネタがなくったてきたと同時に習慣化してきて記事を書くのが楽しくなってきたわけですが最近バックエンドをSupabaseに変えたら便利すぎたのでそのたくさんある機能の中から一つCSVインポートの話をしたいと思います。
Supabase × CSVインポートで爆速データ投入!
普段はフロントをFlutterでBaaSをSupabase,APIをHonoのモダン構成で書いてるわけですが、その中でデータをDBで管理したいけど「基本的にはReadしかしない!」や「とりあえずデータだけ用意したいけど、APIもUIも作るのめんどい…」という場面に出くわすことがあります。
その時に使用するのがCSVインポートです。
AIでCSVを自動生成!
ここで使う「AI」とは、Supabase上で動かすわけではなく、CSVファイルの中身をAIに作ってもらうという話です。
Gemini 2.5などのマルチモーダルAIにPDF/スクリーンショット/オープンデータの表などと一緒にCSV形式のルール(例:カラム名や形式)をプロンプトで指定。そうすれば意外と良い精度でCSVを生成してくれるので、できあがったCSVをSupabaseの管理画面からインポートすれば、30秒程度でデータがDBに保存されるのであとはバックエンドのコードを書いてフロントに渡せば完成です。
いつ使うの?
最初に少し触れましたが、ここまで読んで「確かに便利だけどCSVインポートなんていつ使うんだ?」みたいな人がいそうなので使用例を紹介します。
- 開発中のReadOnlyなデータのモック
- 内容はほぼ固定だが時々変わる情報の管理:例)カフェのメニュー表,営業時間表,施設一覧 etc.
- 本番前にバックエンド/API接続の確認をしたいとき
- とにかく時間をかけずにDBに仮データを入れたいとき
これらが考えられると思います私の場合は基本的には内容変わらないけど不定期で変わるデータの保存(メニュー表など)で使用しました。この時もメニュー表をAIに渡してCSVを生成してDBに保存しました。
まとめ
SupabaseはCSVインポートが超便利で、CSVはAIに作らせるともっと速いと言うことがわかったと思います。以前Firestoreで開発していたときは、CSVインポートのような仕組みがなく、モックデータや固定データの登録にかなり手間がかかった記憶があります。その点SupabaseはPostgreSQLベースであることをうまく生かした機能であり、Supabaseの強みだと思います。
今後のプロジェクトでも、BaaSはSupabase一択で進めていこうと思えるくらいには気に入っています!
というわけで、ぽちぽちのつどいGW Advent(?) Calendar 10日目はSupabaseのCSVインポートの話でした!
Discussion