-- Script para corrigir permissões da tabela messages -- Execute este script se ainda estiver com problemas -- 1. Remover RLS temporariamente para testar ALTER TABLE public.messages DISABLE ROW LEVEL SECURITY; -- 2. Garantir que a tabela existe e tem as colunas corretas -- Se der erro, ignore e continue DO $$ BEGIN -- Verificar se a tabela existe IF EXISTS (SELECT FROM pg_tables WHERE schemaname = 'public' AND tablename = 'messages') THEN RAISE NOTICE 'Tabela messages existe!'; ELSE RAISE EXCEPTION 'Tabela messages não existe! Execute o script create-messages-table.sql primeiro.'; END IF; END $$; -- 3. Garantir que anon e authenticated podem acessar GRANT ALL ON public.messages TO anon; GRANT ALL ON public.messages TO authenticated; GRANT ALL ON public.messages TO service_role; -- 4. Garantir que sequences podem ser usadas GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO anon; GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO authenticated; -- 5. DESABILITAR RLS para permitir acesso sem autenticação Supabase -- Isso é necessário porque a aplicação usa autenticação customizada ALTER TABLE public.messages DISABLE ROW LEVEL SECURITY; -- 6. Remover políticas antigas (já que RLS está desabilitado) DROP POLICY IF EXISTS "Users can view their own messages" ON public.messages; DROP POLICY IF EXISTS "Users can send messages" ON public.messages; DROP POLICY IF EXISTS "Users can update received messages" ON public.messages; DROP POLICY IF EXISTS "Users can delete sent messages" ON public.messages; DROP POLICY IF EXISTS "Allow all for testing" ON public.messages; -- Nota: Com RLS desabilitado, qualquer requisição com a chave anon pode acessar a tabela -- Implemente validação de permissões na camada de aplicação (frontend/backend) -- 8. Verificar se está funcionando SELECT 'Configuração concluída! Teste o envio de mensagens agora.' as status;