O erro ocorre porque:
- O código foi migrado para usar
instagram_profiles - Mas a tabela
auditsno banco ainda tem FK apontando paraprofiles(tabela antiga) - Quando tenta inserir uma auditoria, a FK falha
- Acesse: https://supabase.com/dashboard
- Selecione seu projeto
- Vá em SQL Editor (menu lateral esquerdo)
Execute esta query para ver a FK atual:
SELECT
tc.constraint_name,
tc.table_name,
kcu.column_name,
ccu.table_name AS foreign_table_name,
ccu.column_name AS foreign_column_name
FROM information_schema.table_constraints AS tc
JOIN information_schema.key_column_usage AS kcu
ON tc.constraint_name = kcu.constraint_name
JOIN information_schema.constraint_column_usage AS ccu
ON ccu.constraint_name = tc.constraint_name
WHERE tc.constraint_type = 'FOREIGN KEY'
AND tc.table_name = 'audits'
AND kcu.column_name = 'profile_id';Resultado esperado:
- Se mostrar
foreign_table_name = 'profiles'→ FK ERRADA (precisa corrigir) - Se mostrar
foreign_table_name = 'instagram_profiles'→ FK CORRETA (já está ok)
Se a FK estiver apontando para profiles, execute:
-- ============================================
-- MIGRAÇÃO: Atualizar foreign key de audits
-- ============================================
-- Remover constraint antiga
ALTER TABLE audits
DROP CONSTRAINT IF EXISTS audits_profile_id_fkey;
ALTER TABLE audits
DROP CONSTRAINT IF EXISTS fk_audits_profile;
ALTER TABLE audits
DROP CONSTRAINT IF EXISTS audits_profile_id_profiles_id_fk;
-- Adicionar nova foreign key apontando para instagram_profiles
ALTER TABLE audits
ADD CONSTRAINT audits_profile_id_fkey
FOREIGN KEY (profile_id)
REFERENCES instagram_profiles(id)
ON DELETE CASCADE;
-- Comentário para documentação
COMMENT ON CONSTRAINT audits_profile_id_fkey ON audits
IS 'Foreign key para instagram_profiles (perfis do Instagram auditados)';Execute novamente a query do Passo 2. Agora deve mostrar:
foreign_table_name = 'instagram_profiles'✅
- Volte ao dashboard
- Tente criar uma nova análise para
@crokolabs - Deve funcionar sem erros!
Execute para ver todas as FKs que ainda apontam para profiles:
SELECT
tc.table_name,
tc.constraint_name,
kcu.column_name,
ccu.table_name AS foreign_table_name
FROM information_schema.table_constraints AS tc
JOIN information_schema.key_column_usage AS kcu
ON tc.constraint_name = kcu.constraint_name
JOIN information_schema.constraint_column_usage AS ccu
ON ccu.constraint_name = tc.constraint_name
WHERE tc.constraint_type = 'FOREIGN KEY'
AND ccu.table_name = 'profiles';Se outras tabelas além de audits aparecerem, talvez precisem ser migradas também.
- Executei query de verificação (Passo 2)
- FK estava apontando para
profiles(tabela errada) - Executei migração SQL (Passo 3)
- Verifiquei que FK agora aponta para
instagram_profiles - Testei criar auditoria no dashboard
- Auditoria foi criada com sucesso ✅
Se após executar a migração ainda aparecer erro, execute:
-- Ver estrutura completa da tabela audits
\d audits
-- Ver todas as constraints
SELECT * FROM information_schema.table_constraints
WHERE table_name = 'audits';E me envie o resultado para debug adicional.
Tempo estimado: 3 minutos Risco: Baixo (apenas altera FK, não perde dados) Rollback: Recriar FK antiga se necessário