init
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
-- Nova40: Fix auth schema and create demo user
|
||||
-- Run this in Supabase SQL Editor
|
||||
--
|
||||
-- This script:
|
||||
-- 1. Cleans up any broken demo user entries from previous seeder attempts
|
||||
-- 2. Verifies auth schema health
|
||||
-- 3. Creates a proper demo user
|
||||
|
||||
-- ============================================
|
||||
-- STEP 1: Clean up any broken demo user data
|
||||
-- ============================================
|
||||
delete from auth.identities
|
||||
where user_id in (select id from auth.users where email = 'demo@nova40.app');
|
||||
|
||||
delete from auth.users
|
||||
where email = 'demo@nova40.app';
|
||||
|
||||
-- ============================================
|
||||
-- STEP 2: Verify auth schema is healthy
|
||||
-- ============================================
|
||||
-- This should return a number (0 is fine)
|
||||
select count(*) as total_users from auth.users;
|
||||
|
||||
-- ============================================
|
||||
-- STEP 3: Create demo user properly
|
||||
-- ============================================
|
||||
-- We need the pgcrypto extension for crypt()
|
||||
create extension if not exists pgcrypto;
|
||||
|
||||
do $$
|
||||
declare
|
||||
new_uid uuid := gen_random_uuid();
|
||||
begin
|
||||
-- Insert user
|
||||
insert into auth.users (
|
||||
id,
|
||||
instance_id,
|
||||
aud,
|
||||
role,
|
||||
email,
|
||||
encrypted_password,
|
||||
email_confirmed_at,
|
||||
raw_app_meta_data,
|
||||
raw_user_meta_data,
|
||||
created_at,
|
||||
updated_at,
|
||||
confirmation_token,
|
||||
recovery_token,
|
||||
email_change_token_new,
|
||||
email_change
|
||||
) values (
|
||||
new_uid,
|
||||
'00000000-0000-0000-0000-000000000000',
|
||||
'authenticated',
|
||||
'authenticated',
|
||||
'demo@nova40.app',
|
||||
crypt('123456', gen_salt('bf')),
|
||||
now(),
|
||||
'{"provider": "email", "providers": ["email"]}'::jsonb,
|
||||
'{"email": "demo@nova40.app"}'::jsonb,
|
||||
now(),
|
||||
now(),
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
''
|
||||
);
|
||||
|
||||
-- Insert identity (REQUIRED for Supabase auth login to work)
|
||||
insert into auth.identities (
|
||||
id,
|
||||
user_id,
|
||||
provider_id,
|
||||
identity_data,
|
||||
provider,
|
||||
last_sign_in_at,
|
||||
created_at,
|
||||
updated_at
|
||||
) values (
|
||||
new_uid,
|
||||
new_uid,
|
||||
'demo@nova40.app',
|
||||
jsonb_build_object(
|
||||
'sub', new_uid::text,
|
||||
'email', 'demo@nova40.app',
|
||||
'email_verified', true
|
||||
),
|
||||
'email',
|
||||
now(),
|
||||
now(),
|
||||
now()
|
||||
);
|
||||
|
||||
raise notice '✅ Demo user created! ID: %', new_uid;
|
||||
end $$;
|
||||
|
||||
-- ============================================
|
||||
-- STEP 4: Verify the user was created
|
||||
-- ============================================
|
||||
select
|
||||
u.id,
|
||||
u.email,
|
||||
u.email_confirmed_at,
|
||||
i.provider
|
||||
from auth.users u
|
||||
left join auth.identities i on i.user_id = u.id
|
||||
where u.email = 'demo@nova40.app';
|
||||
Reference in New Issue
Block a user