수파베이스 auth 를 사용할 때, auth.users에 row 추가시(즉 회원가입시) 자동으로 custom users(프로젝트마다 다른) 테이블에 데이터를 추가하는 방법을 연구했습니다.
CREATE OR REPLACE FUNCTION public.handle_new_user_custom()
RETURNS TRIGGER AS $$
BEGIN
INSERT INTO public.users (user_id, user_email, user_nickname, user_profile_pic)
VALUES (
NEW.id,
NEW.email,
NEW.raw_user_meta_data->>'user_name',
CASE
WHEN NEW.raw_user_meta_data->>'avatar_url' IS NOT NULL
THEN NEW.raw_user_meta_data->>'avatar_url'
ELSE NULL
END
);
RETURN NEW;
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;
-- 새로운 트리거 생성
CREATE TRIGGER on_auth_user_created_custom
AFTER INSERT ON auth.users
FOR EACH ROW
EXECUTE FUNCTION public.handle_new_user_custom();
이제 INSERT 발생시 public.users 에 자동으로 기본적인 데이터가 추가됩니다.