Open5

supabase memo

RuRu

moddatetimeによるupdated_atの自動更新

GUIから

triggerの設定をGUIから設定すると以下になりカラム指定ができなくてエラー

create trigger "handle_update_at" before
update on users for each row
execute function moddatetime ();

SQLから

直打ちだと正しく反映できる。

create trigger handle_updated_at before update on public.users
  for each row execute procedure moddatetime (updated_at);

↓テーブル設置

create trigger handle_update_at before
update on users for each row
execute function moddatetime ('updated_at');

ref

https://github.com/supabase/supabase/issues/379#issuecomment-1005614974

RuRu

rpcはデフォルトでトランザクションが張られているので、関数定義には含めるとエラーが発生

RuRu

local開発

DB

基本的にドキュメント通りでした
https://supabase.com/docs/reference/cli/supabase-db

認証

config.tomlauth.externalを編集する

config.toml
[auth.external.hoge]
client_id = ""
secret = ""
redirect_uri = "http://localhost:54321/auth/v1/callback"

なお、.envをルートに作成しtomlで読むことが推奨(?)されている

config.toml
client_id = "env(GITHUB_CLIENT_ID)"
secret = "env(GITHUB_SECRET)"

ref

https://supabase.com/docs/guides/getting-started/local-development#use-auth-locally

https://github.com/orgs/supabase/discussions/2818#discussioncomment-4019776

RuRu

select

joinしたテーブルの値はそのテーブル名で配列で返される

※以下サンプルは雰囲気

hoge
a
huga
hoge_id

.from('hoge').select('*, huga(*)')...
的な感じでjoinしてデータ取得可能

return

{
  a:''
  huga:[{
    hoge_id
  }]
}