Vous n'êtes pas identifié(e).
Pages : 1
bonsoir
question de base
j'ai un fichier .csv que je veux importer dans une table
dans pgadmin bouton sql je tape
COPY matable FROM /chemin_du_fichier.csv' DELIMITERS ','
réponse je n'ai pas les droits du super utilisateur donc je ne peux pas.
j'ai cru comprendre que si je place fichier.csv sous $pgdata cela se passerait mieux.
Mais sous ubuntu ou se truve ce fichu répertoire pgdata ?
à défaut on me dit que la commande psql \copy fait la même chose sans demander les droits du super utilisateur
je tape donc
\copy matable FROM /chemin_fichier.csv DELIMITER ','
réponse connait pas matable
merci des éclaircissements
Hors ligne
j'ai cru comprendre que si je place fichier.csv sous $pgdata cela se passerait mieux.
C'est faux.
Mais sous ubuntu ou se truve ce fichu répertoire pgdata ?
En étant connecté à PostgreSQL, lancez "SHOW data_directory".
à défaut on me dit que la commande psql \copy fait la même chose sans demander les droits du super utilisateur
C'est vrai.
réponse connait pas matable
Soit vous avez mal saisi le nom de la table, soit vous n'êtes pas connecté à la bonne base (ou au bon serveur), soit vous n'avez pas donné le vrai message d'erreur. À ce sujet, il serait mieux de donner le message d'erreur exact, ce serait beaucoup plus simple.
Guillaume.
Hors ligne
Bonsoir.
Il ne faut pas confondre la commande sql COPY, qui accède à l'arborescence du serveur et la commande \copy qui ne s'utilise que dans psql et qui fonctionne effectivement sur votre arborescence courante.
Pour connaître le répertoire data, vous pouvez faire "show data_directory" et cela vous donnera le chemin d'accès complet.
Julien.
https://rjuju.github.io/
Hors ligne
dans une console je tape
sudo -s -u postgres
on me demande le mot de passe du compte utilisateur sous lequel je suis connecté
ce qui me permet d'arriver à la commande psql
(si je tape sudo -s -u nom_utilisateur_postgresql_créé_pour_gerer_les_bases_ainsi_que_décrit_dans_la_doc_ubuntu la réponse est "sudo user unknown" ce qui est logique puisque mon système n'a pas d'utilisateur utilisateur_postgresql et qu'en conséquence il ne fait pas partie des sudo)
donc
psql
commande
postgres=# \COPY table FROM 'chemin_du_fichier_à_importer' delimiter ','
ERROR: relation "table" n'existe pas
\COPY: ERROR: relation "table" does not exist
Hors ligne
Dans quel base êtes vous connecté ? Sous psql que donne la commande \d ?
Si vous vous êtes connecté sous l'utilisateur postgres probable que vous soyez dans
la base postgres et non dans celle où vous supposez être.
Éric
Hors ligne
la commande \d dit
No relations found
ce qui n'est pas étonnant puisque toutes mes bases sont sous l'utilisateur (role ??) que postgres créé lors de l'installation de postgresql (role ?? qui a le droit de créer et modifier des bases de données)
sous mon compte utilisateur philippe si je tape psql mabasededonnées la réponse est
FATAL role philippe n'existe pas
si jen passe en root même réponde
FATAL role root n'existe pas
ce que je comprend
mon nom de compte utilisateur d'ubuntu n'est pas le même que celui du role administrateur de mes bases
Comment contourner cela ?
Hors ligne
Vous pouvez lancer en utilisateur postgres "psql mabasededonnées", ou faire "\c mabasededonnées" une fois sous l'invite psql pour changer de base.
Vous pouvez également faire "psql -U postgres mabasededonnées" depuis n'importe quel utilisateur système pour vous connecter en tant que postgres à la bonne base de données.
Julien.
https://rjuju.github.io/
Hors ligne
merci
mon problème est résolu
Hors ligne
Pages : 1