-
Acesse o painel do Supabase:
- https://supabase.com/dashboard/project/dytuwutsjjxxmyefrfed
- Vá em SQL Editor
-
Execute o SQL abaixo (substitua
USER_ID_AQUIpelo ID do usuário):
-- Deletar usuário e todos os dados relacionados (cascata)
-- Substitua 'USER_ID_AQUI' pelo ID do usuário que você quer deletar
DELETE FROM auth.users
WHERE id = 'USER_ID_AQUI';- Como a tabela
clientstemON DELETE CASCADEconfigurado, ao deletar o usuário emauth.users, todos os registros relacionados emclientsserão deletados automaticamente. - Isso também deleta os recursos OpenAI (assistents e vectorstores) se houver lógica de limpeza.
Se você quiser deletar apenas o registro do cliente mas manter o usuário autenticado:
-- Deletar apenas o registro do cliente
DELETE FROM public.clients
WHERE user_id = 'USER_ID_AQUI';Se você quiser deletar o usuário E limpar os recursos OpenAI associados:
-- 1) Buscar IDs dos recursos OpenAI do cliente
SELECT
id,
user_id,
openai_assistant_id,
vectorstore_id
FROM public.clients
WHERE user_id = 'USER_ID_AQUI';
-- 2) Anotar os IDs (assistant_id e vectorstore_id)
-- 3) Deletar o usuário (isso deleta o cliente automaticamente por CASCADE)
DELETE FROM auth.users
WHERE id = 'USER_ID_AQUI';
-- 4) (Opcional) Se quiser deletar os recursos OpenAI manualmente via API,
-- você precisaria fazer isso via código ou API da OpenAI
-- Os recursos OpenAI não são deletados automaticamente ao deletar o usuário-- Listar todos os usuários com seus emails
SELECT
id,
email,
created_at,
last_sign_in_at
FROM auth.users
ORDER BY created_at DESC;- Acesse Table Editor no painel do Supabase
- Vá em Authentication → Users
- Encontre o usuário pelo email
- Copie o
iddo usuário
-- Listar usuários que têm clientes cadastrados
SELECT
c.id as client_id,
c.user_id,
c.name,
c.email,
u.email as user_email,
u.created_at as user_created_at
FROM public.clients c
JOIN auth.users u ON u.id = c.user_id
ORDER BY c.created_at DESC;- Ao deletar um usuário em
auth.users, o Supabase automaticamente deleta:- Registros relacionados em
public.clients(devido aoON DELETE CASCADE) - Sessões de autenticação
- Tokens de refresh
- Registros relacionados em
- Os assistentes e vectorstores criados na OpenAI NÃO são deletados automaticamente
- Se você quiser deletá-los, precisa fazer via API da OpenAI ou código
- Eles continuarão existindo na conta OpenAI e podem gerar custos
- Se houver outras tabelas com referências ao
user_id, verifique se têmON DELETE CASCADEconfigurado - Caso contrário, você precisará deletar manualmente ou ajustar as foreign keys
Se você quiser fazer uma limpeza completa (usuário + cliente + recursos OpenAI):
-- 1) Buscar informações do cliente
DO $$
DECLARE
v_user_id UUID := 'USER_ID_AQUI'; -- Substitua pelo ID do usuário
v_assistant_id TEXT;
v_vectorstore_id TEXT;
BEGIN
-- Buscar IDs dos recursos OpenAI
SELECT openai_assistant_id, vectorstore_id
INTO v_assistant_id, v_vectorstore_id
FROM public.clients
WHERE user_id = v_user_id;
-- Mostrar informações
RAISE NOTICE 'Cliente encontrado:';
RAISE NOTICE ' Assistant ID: %', v_assistant_id;
RAISE NOTICE ' Vectorstore ID: %', v_vectorstore_id;
-- Deletar o usuário (cliente será deletado automaticamente)
DELETE FROM auth.users WHERE id = v_user_id;
RAISE NOTICE 'Usuário deletado com sucesso!';
RAISE NOTICE 'NOTA: Recursos OpenAI (assistant e vectorstore) precisam ser deletados manualmente via API da OpenAI';
END $$;-- 1) Encontrar o ID do usuário pelo email
SELECT id, email
FROM auth.users
WHERE email = 'usuario@exemplo.com';
-- 2) Deletar o usuário (use o ID retornado acima)
DELETE FROM auth.users
WHERE id = 'ID_RETORNADO_ACIMA';Última atualização: 17/12/2025