pg_dump: слишком много аргументов командной строки

что не так с этой командой:

pg_dump -U postgres -W admin --disable-triggers -a -t employees -f D:\ddd.txt postgres

Это дает ошибку слишком большого количества аргументов командной строки


person Bhargav Gor    schedule 08.08.2012    source источник


Ответы (7)


Похоже, это опция -W. Нет смысла идти с этой опцией.

-W, --password           force password prompt (should happen automatically)

Если вы хотите запустить команду без ввода пароля, используйте файл .pgpass. http://www.postgresql.org/docs/9.1/static/libpq-pgpass.html< /а>

person Jim    schedule 08.08.2012
comment
@BhargavGor: опустите -W admin, а не только -W - person Daniel Vérité; 10.08.2012

Для потомков обратите внимание, что pg_dump и pg_restore (и многие другие команды) не могут обрабатывать длинные дефисы, создаваемые текстовыми процессорами. Если вы вырезаете и вставляете командные строки из текстового процессора, убедитесь, что он не преобразовал ваши дефисы во что-то другое при редактировании. В противном случае вы получите командные строки, которые выглядят правильно, но безнадежно запутывают анализаторы аргументов в этих инструментах.

person johnkaplantech    schedule 09.01.2014
comment
Это помогло мне. - person VSO; 06.01.2020

pg_dump и pg_restore должны запрашивать пароль в командной строке, если вы поставите это команду, они всегда будут выдавать слишком много ошибок аргументов командной строки. Вы можете использовать ниже для установки связанной переменной среды в командной строке или пакетном файле:

"SET PGPASSWORD=<password>"

чтобы вас не просили вводить пароль вручную в пакетном файле. Они используют заданную переменную среды.

person Mustafa Kemal    schedule 12.04.2017
comment
Это было так технологично. Это спасло меня от написания ужасного bash-скрипта ожидания/порождения. Спасибо. - person 0x539; 30.11.2017
comment
Это должен быть принятый ответ. Другие ответы просто устраняют опечатки. - person Andrew Swan; 06.01.2021

Вместо передачи пароля с флагом -W начните с установки временной переменной для postgres:

PGPASSWORD="mypass" pg_dump -U postgres--disable-triggers -a -t employees -f D:\ddd.txt postgres
person Bartosz    schedule 19.12.2018

-W -> запросит пароль для получения полного дампа БД, используйте что-то вроде

pg_dump -h 192.168.44.200 -p 5432 -U postgres -W -c -C -Fc -f C:\MMM\backup10_3.backup DATABASE_NAME
person Muthu    schedule 11.04.2014

Я получил это от копирования-вставки, где 1 черточка была другой.

Было: –-host= (первый тире я "длинный" тире) Исправил на --host= решил это

person Frederik Struck-Schøning    schedule 23.05.2017
comment
чувак, я бы поцеловал, если бы ты был здесь! смешной. следите за автокоррекцией TextEdit - person mangonights; 21.03.2018
comment
Глупые проблемы... У меня было -jobs вместо --jobs. - person wmassingham; 28.05.2019

Другой вариант — добавить ~/.pgpass файл с таким содержимым:

hostname:port:database:username:password

подробнее здесь

person Szymon Rut    schedule 12.01.2019