0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

開発をよりシームレスに!Supabaseのテーブル情報をAIに簡単に伝える方法

Posted at

Supabase を使用していてAI君にテーブル構造を伝えたいとき、皆さんどうしてますか?
私は Flutter と Supabase で開発していますが、その時によく使う方法を紹介します。

1. Copy table schema 機能を使う方法

Supabase のダッシュボードには、テーブル情報を簡単にコピーできる機能があります。

  1. サイドバーからTable Editorをタップ
  2. 対象のテーブルを選択
  3. テーブル名の横にある「...」をクリック
  4. Copy table schemaでスキーマ情報をコピー

これでテーブル構造がコピー出来ました。
後はプロンプトに貼り付けてAI君に伝えてあげればOKです。

2. SQL Editor を使用する方法

Supabase には Table Editor の他に SQL Editor もあります。
よく使うSQLはフォルダを作ってスニペット毎に保存しています。

image.png

テーブル構造を知りたいだけなら下記のSQLを流せばOKです。
AND table_nameにはテーブル名が入るので適宜変更してください。

  1. サイドバーからSQL Editorをタップ
  2. 「+」をタップしてスニペットを作成

image.png
3. 下記のSQLをペーストして cmd + Enter

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です。

image.png

3. 全テーブル構造を一発でコピーする

  1. サイドバーからDatabaseをタップ
  2. Copy as SQL を選択する事でそのプロジェクトに存在しているテーブル情報を全てコピー出来ます。
    image.png

タイラーさんが先日ツイートしてくださって知りました!

テーブル構造以外を知りたい時はどうしたらいいか

タイトルとは少し脱線しますが、テーブル構造だけでなく、
「他の情報を確認したい時はどうしたらいいか?」
という話をついでにします。

例えば、「○○テーブルの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のポップアップが出て「本当に実行していいの?」って警告してくれます。
ただし、やるならぶっ壊れても問題ない環境でやりましょう!(例えば練習用のアプリ作りながらとか)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?