Tabela criada no Supabase não está aparecendo no fluxo de trabalho do n8n ("Supabase Vector Store")

Criei a tabela “documents” seguindo o link ‘quickstart for setting up your vector store’ na documentação n8n (usei o código SQL de ‘Long Chain’ para criar a tabela no Supabase). A execução foi bem-sucedida. Quando vou para as tabelas no Supabase, consigo ver ‘documents’ com 4 colunas e 0 linhas. Porém, na página ‘Supabase Vector Store’ do fluxo de trabalho n8n, depois de selecionar minhas Credenciais do Supabase e Operation = Insert Document, quando procuro pelo Nome da Tabela (na Lista) ‘documents’ não aparece. Retorna 404 - “The resource you are requesting could not be found”.

Tenho n8n instalado no meu MAC (instalação Docker) e estou usando Supabase na nuvem

Qual é a mensagem de erro (se houver)?

Por favor, compartilhe seu fluxo de trabalho

(Selecione os nós na sua tela e use os atalhos de teclado CMD+C/CTRL+C e CMD+V/CTRL+V para copiar e colar o fluxo de trabalho.)

Compartilhe a saída retornada pelo último nó

Informações sobre sua configuração n8n

  • Versão n8n:
  • Banco de dados (padrão: SQLite):
  • Configuração n8n EXECUTIONS_PROCESS (padrão: own, main):
  • Executando n8n via (Docker, npm, n8n cloud, aplicativo de desktop):
  • Sistema operacional:

Oi @subroto

Estas são as coisas que você pode fazer:

1)Certifique-se de que a tabela está em public. Se não estiver, você precisará movê-la ou recriá-la no schema public.
2)Você pode forçar um recarregamento do schema. A maneira mais simples é fazer uma pequena alteração na tabela (por exemplo, adicionar uma coluna fictícia e deletá-la, ou alterar uma descrição de coluna) através da interface do Table Editor, o que geralmente ativa uma atualização de cache.
3) Para operações de vector store (Insert/Query), você deve usar a chave secreta service_role. A chave anon está sujeita a Row Level Security (RLS) e pode não ter permissão para “ver” a estrutura da tabela via API.

Deixa eu entender bem: você está sugerindo que eu faça tudo isso de uma vez ou que eu faça o primeiro e verifique o resultado e assim por diante…
Além disso, ao criar a tabela eu não selecionei RLS (Row Level Security).
Obrigado

@subroto , é isso que quis dizer

Obrigado pelas sugestões, vou tentar e te aviso.
Vocês são ótimos!

Bem-vindo @subroto!

O erro 404 do nó Vector Store geralmente é um problema de credencial em vez de um problema de esquema. Checklist rápido:

  1. Na credencial Supabase do n8n, use a chave service_role (não anon) - a chave anon geralmente não consegue acessar o endpoint do esquema REST que o nó usa para listar tabelas.
  2. Certifique-se de que a extensão vector está habilitada no Supabase: vá para Database > Extensions e habilite pgvector. Se a extensão estiver faltando, a SQL de criação de tabela será executada corretamente, mas o nó não conseguirá interagir com ela adequadamente.
  3. Confirme que a tabela está no esquema public - execute SELECT schemaname FROM pg_tables WHERE tablename = 'documents'; no editor SQL do Supabase para verificar.

Se todos os três estiverem corretos e o erro 404 persistir, tente deletar a credencial no n8n e recriá-la - há um caso conhecido em que a URL do endpoint em cache não é atualizada após edições de credencial.

@subroto Uma coisa que vale a pena sinalizar antes de você passar pela checklist: o SQL do quickstart do LangChain que o n8n vincula cria a tabela documents no schema extensions, não public. O Table Editor do Supabase vai mostrá-la, mas o nó Supabase Vector Store do n8n lista apenas tabelas do schema public, é por isso que você recebe um 404 mesmo que a tabela exista.

Execute isto no SQL Editor do Supabase para confirmar:

SELECT schemaname FROM pg_tables WHERE tablename = 'documents';

Se retornar extensions em vez de public, recrie a tabela usando este SQL ajustado:

CREATE TABLE public.documents (

Depois de recriar em public, use a chave service_role na sua credencial do n8n como @kjooleng mencionou, a tabela deve aparecer no dropdown imediatamente.

Executei a consulta

select schemaname
from pg_tables
where tablename = ‘documents’
limit 100;

Retornou public. Obrigado e atenciosamente,