Supabaseとは02:データベースを使った社内備品管理アプリを作ってみる【ReactでCRUD操作】

Supabase

Supabase(スーパーベース・スパベース)の使い方2回目。今回はSupabaseでデータベースを使ってみます。

社内備品を管理するためのWebアプリのデーターベースを作ってみよう♪

くまみ
くまみ

あら、なんだか実践的でワクワクするわ。

事前準備(備品管理アプリを作る)

今回は社内備品管理用のWebアプリのデータベースとして、Supabaseを使うという想定でいきます。Claude Code等を使って、下記のようなプロンプトで、ReactによるWebアプリを作っておきます。

【Webアプリ開発用プロンプト例】

Reactで簡単なCRUD処理をいれてください。社内備品と個数を新規登録・更新・削除・一覧表示できるようにしてください。

CRUD処理っていうのは、データを新規作成・更新・削除・表示する処理のこと。データベースを使う場合は、多くの場合、このCRUDを実装しています。

くまみ
くまみ

確かに。何か作ったら、編集したり、消したり、表示したりするわ。

まずはシンプルなCRUD処理のデータベースとしてSupabase連携を試してみましょ。

こんな社内備品管理アプリをつくっておきます。

Supabaseのアカウントを作成

それでは早速、Supabase操作に入っていきます。もしまだの場合には、まずはSupabaseでアカウントを作成します。

プロジェクトを新規作成

Supabase内でNew Projectをクリックして新規プロジェクトを作ります。設定はデフォルトでOKです。

データベースを新規作成

プロジェクト作成後に表示される【Create a new table】 ボタンをクリックして、データベーステーブルを作成します。

ちなみにtableは、英語でデータベース内の表のこと。

くまみ
くまみ

なるほど。

Nameは「bihins」とし、お好みでDescriptionもいれます。

Enable Row Level Security(RLS)はデフォルトでチェックが入っています。こちらはセキュリティ上とても大事なのですが、テストの際にはここにチェックが入っているとエラーになります。テスト時には、まずはチェックを外しておきましょう。

くまみ
くまみ

RLSって?

データベースへのアクセスを制御できる機能。チェックが入っていることで、ルールで許可した人しかアクセスできなくできるの。

くまみ
くまみ

あら、なんて厳重な。

ね。でもテストのときは、まずはだれでもアクセス可能な形にしたいから、チェックを外しておくと便利。

ただ、本番環境では必ずRLSを有効にしてね。

下の方にはカラム設定欄があります。[id]と[created_at]カラムはデフォルトで存在しています。

ここに「Add columns」ボタンを押して、[name]と[number]カラムを追加します。Typeはそれぞれ[varchar]と[int2]にします。

一番左の三本線をクリックして、お好みに応じて、カラムの順序の入れ替えます。

Typeは、どんなタイプ(型)のデータをいれるか。varcharは文字(テキスト)をいれる型で、int2は2バイトの整数。今回みたいな在庫数をいれるなら、これで十分かな。

くまみ
くまみ

いちいちタイプをいれるのって、めんどくさいわね。

確かに。でもこうしておくと、変なデータをいれられにくくなるし、メンテもしやすくなるよ。Supabaseは、こんなふうに分かりやすく設定できるのが良いところなの。

なおSupabaseでは、Null値許容かどうかなどの設定も、手軽に実施できます。デフォルトではNull値許容となっていますが、各カラムの横の歯車マークを押して、簡単に設定を変えることができます。

くまみ
くまみ

えっと、ぬる(Null)って?

この部分が空っぽでもOKかってこと。最初は考えなくてもデフォルトのままでOK。ただ、こういった設定も手軽に行えるって覚えておいて。

最後に「Save」ボタンを押せば、データベースの完成です。

テーブル作成用の公式マニュアルはこちら。

SupabaseとWebアプリの連携

ローカル上のWebアプリとSupabaseを連携する場合には、連携用のコードの追加が必要となります。ここからは、ローカルでの作業になります。作成したWebアプリがあるディレクトリの中で作業していきましょう。

.envファイルの追加

まずはWebアプリが入っているディレクトリの中に、.envファイルを作り、そこに今回のプロジェクトの情報をいれておきましょう。

【.env】

URLとKey情報は、Supabaseのプロジェクトトップ画面に記載されています。「VITE_SUPABASE_URL」には「Project API」のProject URLを、「VITE_SUPABASE_PUBLISHABLE_KEY」には、とAPI Key情報をいれます。

Supabaseライブラリのインストール

次に、ローカルのWebアプリに、Supabaseライブラリをインストールします。下記コマンドを実行します。

ライブラリを入れた後、プロジェクト内の srcディレクトリ内にlibディレクトリを作成します。その中に、supabase.tsファイルを作成し、下記コードをいれます。

supabase.ts】

.envファイルに書いた連携情報を読み込むファイルとなります。

なおライブラリはインストールせず、CDNでも利用できます。公式マニュアルはこちら。

既存のコードの変更

最後に既存のコードも変更しておきます。これも生成AIに頼んでしまいましょう。

下記はプロンプトの書き方例です。

【Supabase連携用コードを書くためのプロンプト例】

supabase連携をすすめていきます。キー情報はsupabase.tsファイルにいれました。データベース名はbihinsで、nameカラムとnumberカラムがあります。ここに、登録したデータをいれるようにコードを書き変えてください。更新・削除・表示処理にもSupabase連携に対応させてください。なお、これまでのコードの中で不要なものは削除してください。

コードを書き変える時は、不要なコード削除の指示もいれておくといいよ。

くまみ
くまみ

それぐらい気を利かしてほしいけど。生成AIには丁寧に言わないと伝わらないのね。

テストしてみる

これでOKです。Webアプリを立ち上げて、連携をテストしてみてください。下記は、わたしの環境で開発した備品管理用アプリとなります。

備品を新規登録したら、Supabaseのデータベースにも反映されているかチェックしてみてくださいね。

くまみ
くまみ

あら!ちゃんと登録されているわ。すごい。

データベース登録が目で確認できると嬉しいよね。

React以外のWebアプリ

なおReact以外にも、Supabaseは色々なWebアプリと連携が可能です。有名どころでいえば、Next.jsとの連携が挙げられます。

使用するものによって連携方法が異なります。下記の公式サイトのサイドバーから、ご利用の環境を選択して、連携方法を確認できます。

さいごに

Supabaseのデータベース、いかがでしたか?

とりあえずの連携はできましたが、まだまだお伝えしたいことはあります。たとえばRLSを使って、セキュリティをしっかり高めていく方法をご紹介したいところ。

くまみ
くまみ

今回、とりあえず使わなくしたRLSね。

そう!これが実はとっても大事で、Supabaseの特徴でもあるの。

そのために、まずは認証機能をつけるところから始めていきましょう。次回、Supabaseの認証機能のつけ方は、こちらご覧ください。

URL(準備中)

気になったら、次回もぜひ見て下さいね。更新した時はXなどでお知らせします。よかったらフォローしてください。

Supabase 生成AI関連

生成AIを使ったコーディングに興味がある あなたへ

バイブコーディングセミナープレゼント

バイブコーディングセミナーの一部を無料でプレゼント!

プレゼント詳細を見てみる

生成AIを使ったコーディングに興味がある あなたへ

バイブコーディングセミナープレゼント

バイブコーディングセミナーの一部を無料でプレゼント!

プレゼント詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪

Laravelの使い方を分かりやすく解説した書籍を出版しました。 ご好評につき、最新版に対応した改訂版を2025年7月に発売
書店やAmazon等のオンラインショップにて販売中です。 詳しくは下記ボタンをクリック

書籍の詳細を見てみる

Laravelの本書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。ご好評につき最新版対応の改訂版発売。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる
Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました