quel est le problème avec cette commande:
pg_dump -U postgres -W admin --disable-triggers -a -t employees -f D:\ddd.txt postgres
Cela donne une erreur de trop d'arguments en ligne de commande
On dirait que c'est l'option -W. Il n'y a aucune valeur pour aller avec cette option.
-W, --password force password Prompt (should happen automatically)
Si vous souhaitez exécuter la commande sans taper de mot de passe, utilisez un fichier .pgpass. http://www.postgresql.org/docs/9.1/static/libpq-pgpass.html
Pour la postérité, notez que pg_dump et pg_restore (et de nombreuses autres commandes) ne peuvent pas traiter les traits d'union longs créés par les processeurs Word. Si vous effectuez un copier-coller de lignes de commande à partir d'un traitement de texte, assurez-vous qu'il n'a pas converti vos traits d'union en un autre outil d'édition. Sinon, vous obtiendrez des lignes de commande qui semblent correctes mais qui confondent désespérément les analyseurs syntaxiques d'arguments dans ces outils.
pg_dump et pg_restore doivent demander le mot de passe sur commanline. Si vous le mettez commande, ils donnent toujours l'erreur "trop d'arguments de ligne de commande". Vous pouvez utiliser ci-dessous pour définir une variable d'environnement associée dans un fichier de commandes ou de commandes:
"SET PGPASSWORD=<password>"
afin que vous ne soyez pas invité à entrer le mot de passe manuellement dans votre fichier batch. Ils utilisent une variable d'environnement donnée.
Je l'ai obtenu en copiant-collant, où l'un des tirets était différent.
Était: –-Host=
(le premier tiret i un tiret "long") Corrigé en --Host=
l'a résolu
-W
-> demandera un mot de passe pour prendre une copie complète de la base de données utiliser quelque chose comme:
pg_dump -h 192.168.44.200 -p 5432 -U postgres -W -c -C -Fc -f C:\MMM\backup10_3.backup DATABASE_NAME
Au lieu de transmettre le mot de passe avec l'indicateur -W
, commencez par définir une variable temporaire pour postgres:
PGPASSWORD="mypass" pg_dump -U postgres--disable-triggers -a -t employees -f D:\ddd.txt postgres
Une autre option consiste à ajouter un fichier ~/.pgpass
avec un contenu comme celui-ci:
hostname:port:database:username:password
lire plus ici