N8n não está aceitando minha configuração do PostgreSQL

Configurei meu arquivo .env para usar PostgreSQL em vez de SQLite3:

DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=localhost
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8n
DB_POSTGRESDB_USER=
DB_POSTGRESDB_PASSWORD=

User Management DB (deve corresponder ao banco de dados principal, a menos que intencionalmente separado)

N8N_USER_MANAGEMENT_POSTGRESDB_HOST=localhost
N8N_USER_MANAGEMENT_POSTGRESDB_PORT=5432
N8N_USER_MANAGEMENT_POSTGRESDB_DATABASE=n8n
N8N_USER_MANAGEMENT_POSTGRESDB_USER=
N8N_USER_MANAGEMENT_POSTGRESDB_PASSWORD=

Mas continuo enfrentando este erro ao tentar configurar meus modelos Ollama locais:
Error in chat execution: Error: Could not locate the bindings file. Tried:
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\build\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\build\Debug\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\build\Release\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\out\Debug\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\Debug\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\out\Release\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\Release\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\build\default\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\compiled\24.15.0\win32\x64\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\addon-build\release\install-root\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\addon-build\debug\install-root\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\addon-build\default\install-root\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\lib\binding\node-v137-win32-x64\node_sqlite3.node
Title generation failed: Error: Could not locate the bindings file. Tried:
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\build\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\build\Debug\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\build\Release\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\out\Debug\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\Debug\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\out\Release\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\Release\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\build\default\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\compiled\24.15.0\win32\x64\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\addon-build\release\install-root\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\addon-build\debug\install-root\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\addon-build\default\install-root\node_sqlite3.node
-→ C:\Users\d-kin\AppData\Roaming\npm\node_modules\n8n\node_modules\sqlite3\lib\binding\node-v137-win32-x64\node_sqlite3.node

Estou usando Node v24.15.0, npm v11.12.1 e n8n v2.20.0

Alguém poderia me ajudar a entender por que isso está acontecendo?

Oi :waving_hand: @Mr_Kintu

Os nós do AI Agent requerem sqlite3 mesmo ao usar PostgreSQL. O erro provavelmente ocorre porque o pacote sqlite3 não foi compilado corretamente para sua versão do Node.js. Node v24.15.0 tem problemas de compatibilidade conhecidos com as vinculações do sqlite3.

Os binários pré-compilados ainda não existem para o Node 24, então você precisa reconstruí-los manualmente usando os comandos abaixo

# Instalar ferramentas de compilação do Windows
npm install --global windows-build-tools

# Depois reconstruir sqlite3
npm rebuild sqlite3

# Ou reinstalar n8n completamente
npm uninstall -g n8n
npm install -g n8n

Você também pode considerar fazer downgrade para Node.js LTS (v20 ou v22) que tem melhor compatibilidade

# Usando nvm (Node Version Manager)
nvm install 20
nvm use 20

# Depois reinstalar n8n
npm install -g n8n

Isso ajuda?

Bem-vindo à comunidade, @Mr_Kintu! E ótima observação de @kjooleng sobre a versão do Node.js.

Para explicar por que isso acontece: o erro Could not locate the bindings file para sqlite3 é um problema de compatibilidade de módulo nativo. O pacote npm sqlite3 agrupa binários nativos pré-compilados para versões específicas do Node.js. O Node v24 é muito novo e os binários pré-compilados incluídos nas dependências do n8n podem ainda não ter sido compilados para ele.

Eis o detalhe: mesmo que você tenha configurado DB_TYPE=postgresdb, o n8n ainda tem sqlite3 como uma dependência em sua árvore de pacotes (é usado internamente para alguns caminhos de fallback e é carregado na inicialização independentemente da sua configuração de DB). Se o binário nativo sqlite3 não conseguir carregar para sua versão do Node, ele lança esse erro e o n8n não consegue iniciar.

A solução: Use Node.js 20 LTS (a versão oficialmente suportada para n8n). Com nvm:

nvm install 20
nvm use 20
nvm alias default 20
npm install -g n8n

Node 18 LTS também funciona. Ambos são oficialmente suportados. Node 22 pode funcionar em alguns casos, mas 24 ainda não foi testado/suportado a partir do n8n v2.20.

Uma vez que você esteja no Node 20, sua configuração PostgreSQL deve ser detectada corretamente.

bem-vindo à comunidade n8n @Mr_Kintu

Uma coisa extra que eu verificaria depois de sair do Node 24 é se n8n está realmente carregando seus valores de .env. Além disso, eu não deixaria DB_POSTGRESDB_USER e DB_POSTGRESDB_PASSWORD vazios. Crie um usuário PostgreSQL real, confirme se o banco de dados n8n existe e reinicie completamente o n8n. Como uma solução mais simples, Docker Compose com PostgreSQL pode ser mais previsível do que npm no Windows.

Obrigado @kjooleng, vou tentar fazer downgrade para o node v22/v20 e usar windows-build-tools para instalar o pacote! Vou te contar como fica!

@tamy.santos ah não, esses campos variáveis são reais mesmo! É o problema de binding que está me deixando confuso. Mas obrigado por compartilhar!

Obrigado por isso, @nguyenthieutoan & @kjooleng! Deixe-me experimentar essas melhorias e retorno para você.