PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 25/02/2021 17:15:48

pg_restore: erreur : une seule des options -d/--dbname and -f/--file p

Bonjour à tous,

Je me suis fait surprendre par un comportement du binaire pg_restore que je n'explique pas :
en version 9.6 : pg_restore me donne le contenu du fichier d'export : je peux le lister et voir le sql contenu
en version 12 (vrai aussi pour la 13) pg_restore ne me donne que la liste (option -l) du fichier d'export, mais je ne peux pas voir le  sql contenu

les doc https://docs.postgresql.fr/12/app-pgrestore.html et https://docs.postgresql.fr/9.6/app-pgrestore.html ne parlent pas de modification de comportement ?

/usr/lib/postgresql/9.6/bin/pg_dump -p 5436 -Fc >96.Fc.dmp  -->ok 
/usr/lib/postgresql/9.6/bin/pg_restore -l 96.Fc.dmp  -->ok 
/usr/lib/postgresql/9.6/bin/pg_restore 96.Fc.dmp     -->ok 

/usr/lib/postgresql/12/bin/pg_dump -p 5435 -Fc >12.Fc.dmp   -->ok 
/usr/lib/postgresql/12/bin/pg_restore -l 12.Fc.dmp    -->ok 
/usr/lib/postgresql/12/bin/pg_restore 12.Fc.dmp   -->Nok
pg_restore: erreur : une seule des options -d/--dbname and -f/--file peut être indiquée

avez-vous une idée ?
merci par avance pour toute aide

Hors ligne

#2 25/02/2021 17:38:52

rjuju
Administrateur

Re : pg_restore: erreur : une seule des options -d/--dbname and -f/--file p

Bonjour,


Il s'agit d'un changement volontaire, et le changement de comportement est documenté bien que subtil :

version 9.6 a écrit :

-f nom_fichier, --file=filename

    Spécifie le fichier en sortie pour le script généré ou pour la liste lorsqu'elle est utilisée avec -l. Utilisez - pour la sortie standard, qui est la sortie par défaut.

version 12 a écrit :

-f nom_fichier
--file=filename

    Spécifie le fichier en sortie pour le script généré ou pour la liste lorsqu'elle est utilisée avec -l. Utilisez - pour stdout.

Notez la différence sur "qui est la sortie par défaut.".  Bref, il vous suffit d'utiliser

pg_restore -f - ...

Hors ligne

#3 25/02/2021 17:51:11

Re : pg_restore: erreur : une seule des options -d/--dbname and -f/--file p

ah oui quand même !  un peu barbu smile

cela fonctionne effectivement

/usr/lib/postgresql/12/bin/pg_restore 12.Fc.dmp -f -

merci ! merci pour cette réponse aussi rapide qu'efficace

Hors ligne

Pied de page des forums