Files
thrilltrack-explorer/supabase/migrations/20251001164722_9e3a781d-aff3-421c-b6eb-6afdf4a254b1.sql
gpt-engineer-app[bot] 3769c3759b Fix sign-in database error
2025-10-01 16:47:37 +00:00

46 lines
1.4 KiB
PL/PgSQL

-- Fix the email_change column NULL handling issue in auth.users
-- This addresses the "Scan error on column index 8, name email_change: converting NULL to string is unsupported" error
-- First, create a function to safely update any existing NULL email_change values to empty strings
CREATE OR REPLACE FUNCTION public.fix_auth_email_change_nulls()
RETURNS void
LANGUAGE plpgsql
SECURITY DEFINER
SET search_path TO 'auth', 'public'
AS $$
BEGIN
-- Update any NULL email_change values to empty strings
UPDATE auth.users
SET email_change = ''
WHERE email_change IS NULL;
END;
$$;
-- Execute the fix for existing data
SELECT public.fix_auth_email_change_nulls();
-- Drop the temporary function
DROP FUNCTION public.fix_auth_email_change_nulls();
-- Update the cancel_user_email_change function to use empty strings instead of NULL
CREATE OR REPLACE FUNCTION public.cancel_user_email_change(_user_id uuid)
RETURNS boolean
LANGUAGE plpgsql
SECURITY DEFINER
SET search_path TO 'auth', 'public'
AS $$
BEGIN
-- Clear all email change related fields in auth.users
-- Using empty strings instead of NULL to avoid Supabase Auth scanner issues
UPDATE auth.users
SET
email_change = '',
email_change_sent_at = NULL,
email_change_confirm_status = 0,
email_change_token_current = '',
email_change_token_new = ''
WHERE id = _user_id;
RETURN FOUND;
END;
$$;