mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 08:51:13 -05:00
Fix sign-in database error
This commit is contained in:
@@ -0,0 +1,46 @@
|
|||||||
|
-- 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;
|
||||||
|
$$;
|
||||||
Reference in New Issue
Block a user