Supabase を使用していてAI君にテーブル構造を伝えたいとき、皆さんどうしてますか?
私は Flutter と Supabase で開発していますが、その時によく使う方法を紹介します。
1. Copy table schema 機能を使う方法
Supabase のダッシュボードには、テーブル情報を簡単にコピーできる機能があります。
- サイドバーから
Table Editor
をタップ - 対象のテーブルを選択
- テーブル名の横にある「...」をクリック
-
Copy table schema
でスキーマ情報をコピー
これでテーブル構造がコピー出来ました。
後はプロンプトに貼り付けてAI君に伝えてあげればOKです。
2. SQL Editor を使用する方法
Supabase には Table Editor
の他に SQL Editor
もあります。
よく使うSQL
はフォルダを作ってスニペット毎に保存しています。
テーブル構造を知りたいだけなら下記のSQL
を流せばOKです。
AND table_name
にはテーブル名が入るので適宜変更してください。
- サイドバーから
SQL Editor
をタップ - 「+」をタップしてスニペットを作成
SELECT
column_name,
data_type,
is_nullable,
column_default
FROM
information_schema.columns
WHERE
table_schema = 'public'
AND table_name = 'user_option_settings';
Results タブにSQL
の結果が表示されますので、Export を選択しCopy as JSON
を選択。
後はそれをプロンプトに貼り付ければOKです。
3. 全テーブル構造を一発でコピーする
タイラーさんが先日ツイートしてくださって知りました!
テーブル構造以外を知りたい時はどうしたらいいか
タイトルとは少し脱線しますが、テーブル構造だけでなく、
「他の情報を確認したい時はどうしたらいいか?」
という話をついでにします。
例えば、「○○テーブルのRLSポリシーの設定内容を確認したい」となったら
SELECT *
FROM pg_policies
WHERE tablename = 'customers';
みたいなSQL流してます。
それをAIに食わせて、正しく設定出来ているか、AテーブルとBテーブルとで同じポリシーになっているかなど聞く方法もありですね。
その他にも「テーブルの中身を確認したい時」はこういうSQL流してます。
SELECT * FROM public.customers;
これでテーブルの中身が出てきます。
個人的な使い分け
テーブル情報をただ知りたいだけ、且つ、小規模〜中規模くらいなら「3」が楽かも。
ただ、大規模なプロジェクトでテーブルも数多くある場合、不要な情報をAIに渡してしまうリスクがあるので、「小規模〜中規模くらいなら」と思ってます。
大規模なら「2」の様にSQLエディター
でSQL
流して対象のテーブル情報を取得するかな。
もしSQL
に抵抗ある方はある程度の目星をつけて「1」でもいいかも。
テーブル構造だけでなく、RLSポリシーだったりテーブルの中身だったりそれ以外の情報も知ってAI君に伝えたいとなったら「2」ですね。
ついでにSQL
の勉強にもなります。
書籍やネットの記事を見るよりSQL流してみるのが何より勉強になります。
もしあなたが破壊系のSQL
流しそうになったら、warningのポップアップが出て「本当に実行していいの?」って警告してくれます。
ただし、やるならぶっ壊れても問題ない環境でやりましょう!(例えば練習用のアプリ作りながらとか)