J'ai des fichiers .sql contenant des milliers d'instructions INSERT et j'ai besoin d'exécuter ces insertions sur ma base de données PostgreSQL afin de les ajouter à une table. Les fichiers sont si volumineux qu'il est impossible de les ouvrir et de copier les instructions INSERT dans une fenêtre d'éditeur et de les y exécuter. J'ai trouvé sur Internet que vous pouvez utiliser les éléments suivants en accédant au dossier bin de votre installation PostgreSQL:
psql -d myDataBase -a -f myInsertFile
Dans mon cas:
psql -d HIGHWAYS -a -f CLUSTER_1000M.sql
On me demande ensuite un mot de passe pour mon utilisateur, mais je ne peux rien entrer et quand je tape sur Entrée, j'obtiens cette erreur:
psql: FATAL: l'authentification par mot de passe a échoué pour l'utilisateur "myUsername"
Pourquoi ne me laisse-t-il pas entrer un mot de passe? Y a-t-il un moyen de contourner cela car il est essentiel que je puisse exécuter ces scripts?
J'ai contourné ce problème en ajoutant une nouvelle entrée dans mon fichier pg_hba.conf avec la structure suivante:
# IPv6 local connections:
host myDbName myUserName ::1/128 trust
Le fichier pg_hba.conf se trouve généralement dans le dossier 'data' de votre installation PostgreSQL.