N8n no acepta mi configuración de PostgreSQL

He configurado mi archivo .env para usar PostgreSQL en lugar de SQLite3:

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

Base de datos de gestión de usuarios (debe coincidir con la base de datos principal a menos que sea intencionalmente separada)

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=

Pero sigo recibiendo este error al intentar configurar mis modelos locales de Ollama:
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

Estoy usando Node v24.15.0, npm v11.12.1 y n8n v2.20.0

¿Podría alguien ayudarme a entender por qué está sucediendo esto?

Hola :waving_hand: @Mr_Kintu

Los nodos de AI Agent requieren sqlite3 incluso cuando usas PostgreSQL. El error probablemente ocurra porque el paquete sqlite3 no se compiló correctamente para tu versión de Node.js. Node v24.15.0 tiene problemas de compatibilidad conocidos con los bindings de sqlite3.

Los binarios precompilados aún no existen para Node 24, así que necesitas reconstruirlos manualmente usando los siguientes comandos

# Instalar herramientas de compilación de Windows
npm install --global windows-build-tools

# Luego reconstruir sqlite3
npm rebuild sqlite3

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

También puedes considerar desactualizar a Node.js LTS (v20 o v22) que tiene mejor compatibilidad

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

# Luego reinstalar n8n
npm install -g n8n

¿Te ayuda esto?

¡Bienvenido a la comunidad, @Mr_Kintu! Y bien detectado por @kjooleng sobre la versión de Node.js.

Para explicar por qué sucede esto: el error Could not locate the bindings file para sqlite3 es un problema de compatibilidad de módulos nativos. El paquete npm de sqlite3 incluye binarios nativos precompilados para versiones específicas de Node.js. Node v24 es muy nuevo y es posible que los binarios precompilados incluidos en las dependencias de n8n aún no hayan sido compilados para él.

Aquí está el detalle: aunque hayas configurado DB_TYPE=postgresdb, n8n sigue teniendo sqlite3 como una dependencia en su árbol de paquetes (se usa internamente para algunas rutas de respaldo y se carga al iniciar independientemente de tu configuración de DB). Si el binario nativo de sqlite3 no puede cargar para tu versión de Node, lanza ese error y n8n no puede iniciarse en absoluto.

La solución: Usa Node.js 20 LTS (la versión oficialmente compatible para n8n). Con nvm:

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

Node 18 LTS también funciona. Ambas están oficialmente compatibles. Node 22 puede funcionar en algunos casos, pero 24 aún no ha sido probado/compatible a partir de n8n v2.20.

Una vez que estés en Node 20, tu configuración de PostgreSQL debería ser reconocida correctamente.

bienvenido a la comunidad n8n @Mr_Kintu

Una cosa extra que verificaría después de cambiar desde Node 24 es si n8n está cargando realmente tus valores de .env. Además, no dejaría DB_POSTGRESDB_USER y DB_POSTGRESDB_PASSWORD vacíos. Crea un usuario real de PostgreSQL, confirma que la base de datos n8n existe, y luego reinicia n8n completamente. Como solución alternativa más simple, Docker Compose con PostgreSQL puede ser más predecible que npm en Windows.

¡Gracias @kjooleng! Voy a probar degradar a node v22/v20 y usar windows-build-tools para instalar el paquete. ¡Te aviso cómo va!

@tamy.santos ¡oh no, esos campos variables son reales! Es el problema de vinculación el que me ha estado volviendo loco. ¡Pero gracias por compartir!

¡Gracias por esto, @nguyenthieutoan & @kjooleng! Déjame probar estas mejoras y te devuelvo los comentarios.