N8n n'accepte pas ma configuration PostgreSQL

J’ai configuré mon fichier .env pour utiliser PostgreSQL à la place 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 données de gestion des utilisateurs (doit correspondre à la base de données principale sauf si intentionnellement séparée)

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=

Mais je rencontre constamment cette erreur en essayant de configurer mes modèles Ollama locaux :
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

J’utilise Node v24.15.0, npm v11.12.1 et n8n v2.20.0

Pourriez-vous m’aider à comprendre pourquoi cela se produit ?

Salut :waving_hand: @Mr_Kintu

Les nœuds d’agent IA nécessitent sqlite3 même lors de l’utilisation de PostgreSQL. L’erreur se produit probablement parce que le paquet sqlite3 n’a pas été correctement compilé pour votre version de Node.js. Node v24.15.0 présente des problèmes de compatibilité connus avec les liaisons sqlite3.

Les binaires précompilés n’existent pas encore pour Node 24, vous devez donc les reconstruire manuellement à l’aide des commandes ci-dessous

# Install Windows build tools
npm install --global windows-build-tools

# Then rebuild sqlite3
npm rebuild sqlite3

# Or reinstall n8n completely
npm uninstall -g n8n
npm install -g n8n

Vous pouvez également envisager de passer à Node.js LTS (v20 ou v22) qui offre une meilleure compatibilité

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

# Then reinstall n8n
npm install -g n8n

Cela vous aide-t-il ?

Bienvenue dans la communauté, @Mr_Kintu ! Et bien vu de la part de @kjooleng sur la version de Node.js.

Pour expliquer pourquoi cela se produit : l’erreur Could not locate the bindings file pour sqlite3 est un problème de compatibilité de module natif. Le package npm sqlite3 inclut des binaires natifs précompilés pour des versions spécifiques de Node.js. Node v24 est très nouveau et les binaires précompilés inclus dans les dépendances de n8n n’ont peut-être pas encore été compilés pour celui-ci.

Voilà le truc : même si vous avez défini DB_TYPE=postgresdb, n8n a toujours sqlite3 comme dépendance dans son arborescence de packages (il est utilisé en interne pour certains chemins de secours et est chargé au démarrage indépendamment de votre configuration DB). Si le binaire natif sqlite3 ne peut pas être chargé pour votre version de Node, il génère cette erreur et n8n ne peut pas du tout démarrer.

La solution : Utilisez Node.js 20 LTS (la version officiellement supportée pour n8n). Avec nvm :

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

Node 18 LTS fonctionne aussi. Les deux sont officiellement supportés. Node 22 peut fonctionner dans certains cas mais 24 n’est pas encore testée/supportée à partir de n8n v2.20.

Une fois que vous êtes sur Node 20, votre configuration PostgreSQL devrait être correctement reconnue.

bienvenue dans la communauté n8n @Mr_Kintu

Une chose supplémentaire que je vérifierais après le passage de Node 24 est de vérifier si n8n charge réellement vos valeurs .env. De plus, je ne laisserais pas DB_POSTGRESDB_USER et DB_POSTGRESDB_PASSWORD vides. Créez un vrai utilisateur PostgreSQL, confirmez que la base de données n8n existe, puis redémarrez complètement n8n. Comme solution de contournement plus simple, Docker Compose avec PostgreSQL pourrait être plus prévisible que npm sur Windows.

Merci @kjooleng, je vais essayer de revenir à la version node v22/v20 et utiliser windows-build-tools pour installer le package! Je te tiendrai au courant!

@tamy.santos oh non, ces champs variables sont réels ! C’est le problème de binding qui me rend fou. Mais merci de partager !

Merci pour ça, @nguyenthieutoan & @kjooleng ! Laisse-moi essayer ces améliorations et je te reviens.