27 lines
610 B
PL/PgSQL
27 lines
610 B
PL/PgSQL
-- Auto-create profile when user signs up
|
|
CREATE OR REPLACE FUNCTION public.handle_new_user()
|
|
RETURNS TRIGGER
|
|
LANGUAGE plpgsql
|
|
SECURITY DEFINER
|
|
SET search_path = public
|
|
AS $$
|
|
BEGIN
|
|
INSERT INTO public.profiles (id, full_name)
|
|
VALUES (
|
|
new.id,
|
|
COALESCE(new.raw_user_meta_data ->> 'full_name', NULL)
|
|
)
|
|
ON CONFLICT (id) DO NOTHING;
|
|
|
|
RETURN new;
|
|
END;
|
|
$$;
|
|
|
|
-- Drop existing trigger if exists and create new one
|
|
DROP TRIGGER IF EXISTS on_auth_user_created ON auth.users;
|
|
|
|
CREATE TRIGGER on_auth_user_created
|
|
AFTER INSERT ON auth.users
|
|
FOR EACH ROW
|
|
EXECUTE FUNCTION public.handle_new_user();
|