Vous n'êtes pas identifié(e).
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
Bonjour,
Il s'agit d'un changement volontaire, et le changement de comportement est documenté bien que subtil :
-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.
-f nom_fichier
--file=filenameSpé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 - ...
Julien.
https://rjuju.github.io/
Hors ligne
ah oui quand même ! un peu barbu
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
Bonjour,
C'est à peu près le seul endroit où j'ai trouvé un problème similaire au mien!
Nous avions un ancien Debien 9 / PostgreSQL 9.6, avec une procédure d'import de données exportées depuis un autre site géré par d'autres équipes.
Un beau jour, pg_restore refuse de récupérer l'export :
pg_restore: [archiveur] version non supportée (1.14) dans le fichier d'en-tête
A l'autre bout, ils ont procédé à une montée en version (on ne peut pas leur en vouloir) sans prévenir (on peut leur en vouloir!).
Méthode choisie pour régler le problème : upgrade debian 9 vers 10, puis pg_upgradecluster, puis upgrade debian 10 vers 11, re pg_upgradecluster, et enfin upgrade debian 11 vers 12 et un pg_upgtradecluster pour finir.
Le message d'erreur n'est plus le même, désormais. On a droit à :
pg_restore: erreur : une seule des options -d/--dbname and -f/--file peut être indiquée
Mais on y a droit tout le temps, même en tapant juste au prompt :
pg_upgrade
J'ai loupé une étape?
Je n'ai plus la debian 9.6 d'origine pour vérifier ce que retourne la simple commande :
pg_restore
Merci,
Christophe.
Dernière modification par christophe.nouvel (28/03/2024 13:53:14)
Hors ligne
Quel est la commande complète que vous lancez ?
Guillaume.
Hors ligne