Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
J'ai un problème étrange ...
J'ai souhaité me reconnecter à ma base postgresql version 12.17 (installée localement sous ubuntu 20).
Mis à part de nouvelles installations logicielles (mais rien à voir avec postgres), je n'ai rien changé depuis ma dernière requête qui s'était passé sans soucis.
Aujourd'hui il m'est par exemple impossible de lister les champs de certaines de mes tables avec la commande \d qui ne retourne rien ! Par contre j'arrive à effectuer des requêtes et à obtenir des enregistrements lorsque je fais une requête sur cette même table !... mais pas tout le temps :-(
J'ai essayé de créer une nouvelle base et d'y injecter les données d'une ancienne sauvegarde ... le problème reste le même.
Mis à part réinstaller postgres, auriez vous d'autres pistes à me conseiller pour résoudre mon problème ?
Merci
Hors ligne
C'est en effet très étonnant. Quand vous faites \d nom_table dans psql, il ne vous rend rien ou il vous rend l'invite de commande ? (s'il ne vous rend rien, c'est que le serveur est bloqué à faire quelque chose alors que s'il vous rend l'invite, c'est qu'il a terminé son travail).
Guillaume.
Hors ligne
Bonjour,
Avec \d le serveur me rend la main, et parfois la structure des tables ... mais pas toujours. Et là je n'arrive plus à lui faire afficher le résultat d'une requête comme parfois auparavant ...
Je vais essayer demain avec une sauvegarde de ma base sur un autre ordi.
Bonne journée,
Xavier
Hors ligne
N'auriez vous pu exécuter un \o fichier, ce qui a pour effet d'envoyer le résultat dans ce fichier ? un moyen d'annuler tout "\o fichier" est de faire un \o seul. Par exemple :
postgres@r16 =# select * from pg_am;
┌──────┬────────┬──────────────────────┬────────┐
│ oid │ amname │ amhandler │ amtype │
├──────┼────────┼──────────────────────┼────────┤
│ 2 │ heap │ heap_tableam_handler │ t │
│ 403 │ btree │ bthandler │ i │
│ 405 │ hash │ hashhandler │ i │
│ 783 │ gist │ gisthandler │ i │
│ 2742 │ gin │ ginhandler │ i │
│ 4000 │ spgist │ spghandler │ i │
│ 3580 │ brin │ brinhandler │ i │
└──────┴────────┴──────────────────────┴────────┘
(7 rows)
postgres@r16 =# \o /tmp/pouet
postgres@r16 =# select * from pg_am;
postgres@r16 =# \d pg_am
postgres@r16 =# \o
postgres@r16 =# select * from pg_am;
┌──────┬────────┬──────────────────────┬────────┐
│ oid │ amname │ amhandler │ amtype │
├──────┼────────┼──────────────────────┼────────┤
│ 2 │ heap │ heap_tableam_handler │ t │
│ 403 │ btree │ bthandler │ i │
│ 405 │ hash │ hashhandler │ i │
│ 783 │ gist │ gisthandler │ i │
│ 2742 │ gin │ ginhandler │ i │
│ 4000 │ spgist │ spghandler │ i │
│ 3580 │ brin │ brinhandler │ i │
└──────┴────────┴──────────────────────┴────────┘
(7 rows)
postgres@r16 =# \d pg_am
Table "pg_catalog.pg_am"
┌───────────┬─────────┬───────────┬──────────┬─────────┐
│ Column │ Type │ Collation │ Nullable │ Default │
├───────────┼─────────┼───────────┼──────────┼─────────┤
│ oid │ oid │ │ not null │ │
│ amname │ name │ │ not null │ │
│ amhandler │ regproc │ │ not null │ │
│ amtype │ "char" │ │ not null │ │
└───────────┴─────────┴───────────┴──────────┴─────────┘
Indexes:
"pg_am_oid_index" PRIMARY KEY, btree (oid)
"pg_am_name_index" UNIQUE CONSTRAINT, btree (amname)
Guillaume.
Hors ligne
Le \o ne change rien ...
Par contre, lorsque je suis loggé en tant que postgres, tout est OK ! \d fonctionne de même que les select etc ...
J'ai créé un autre utilisateur qui peut aussi avoir accès à toutes ces commandes.
Mais je ne comprends toujours pas pourquoi mon compte initial ne fonctionne plus correctement :-(
Xavier
Hors ligne
Bonjour
et si vous faites (avec une connexion postgres ou autre superuser) :
\dg+ votre_compte_initial
ça donne quoi ?
(remplacer "votre_compte_initial" par le vrai nom de votre user à problème).
Dernière modification par ruizsebastien (16/02/2024 18:05:28)
Cordialement,
Sébastien.
Hors ligne
2ème série de question :
- votre "compte_initial" il sert à quoi ?
- qui est le propriétaire des tables que vous essaiez de voir mais que vous ne voyez pas ?
- qui est le propriétaire des tables que vous pouvez voir ?
Dernière modification par ruizsebastien (16/02/2024 18:26:27)
Cordialement,
Sébastien.
Hors ligne
Bonjour,
La base est installée en local sur mon pc portable.
Mon user qui pose problème est aussi mon nom de session, et je suis déclaré comme SuperUser lorsque je tape la commande \dg+
Je suis le propriétaire de toutes les tables déclarées ...
Quand je suis connecté sous mon nom, lorsque je tape \d pour certaines de mes tables, rien ne s'affiche et je retourne à l'invite de commande. Pour d'autres la structure s'affiche bien ...
Quand je suis connecté en tant que postgres (ou un autre utilisateur SuperUser que j'ai créé pour l'occasion) j'ai bien accès à la structure de toutes mes tables ...
Merci !
Xavier
Hors ligne
Peut-etre que ces 2 roles n'ont pas le meme search_path? \d ne renvoie que les tables qui sont visibles sans utiliser de schema (donc dans un schema present dans le search_path, et en cas de tables du meme nom seule la premiere sera affichee)
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1