DEVDEV

supabase updated_at カラムの追加

作成日
2022-06-22
更新日
2022-06-22

SQL

gearsというテーブルにupdated_atカラムを追加する。 追加時に現在時刻が入り、全てのROW更新時に自動的にupdated_atに更新時刻が入るようにする。

sql
ALTER TABLE IF EXISTS public.gears ADD COLUMN updated_at timestamp with time zone DEFAULT now(); create extension if not exists moddatetime schema extensions; CREATE TRIGGER handle_updated_at BEFORE UPDATE ON public.gears FOR EACH ROW EXECUTE FUNCTION extensions.moddatetime('updated_at');

http://localhost:54323/project/default/sql

のSQLエディタで実行する。

Migration

bash
# remote db と差分の確認 supabase commit changes # migration の作成 supabase db commit add_updated_at_to_gears # remote db に反映する supabase db push

※remote dbが設定してあること

本当は、mainブランチにマージ時に実行するのが良いかもしれない。

Error

Error: ERROR: must be owner of table genres (SQLSTATE 42501); while executing migration 20220622150744

supabase db commit時に権限のエラーが発生する場合は、

remote db で

sql
ALTER ROLE postgres SUPERUSER > success. No rows returned

を実行する。

実行した後は、

sql
ALTER ROLE postgres NOSUPERUSER > success. No rows returned

(で戻した方が良いかも?)

型の更新

openapiで型生成しているので、実行しておく。

bash
npx openapi-typescript '${PROJECT_URL}/rest/v1/?apikey=${ANON_API_KEY}' --output types/supabase.ts

で更新しておく。

Related

TAGS

Supabase
Postgres

SHARE