Pg_dump: слишком много аргументов командной строки - программирование
Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

Похоже, это опция -W. Нет никакой ценности, чтобы пойти с этой опцией.

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

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

Ответ 2

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

Ответ 3

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

"SET PGPASSWORD=<password>"

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

Ответ 4

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

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

Ответ 5

-W → будет запрашивать пароль взять полный сброс DB используйте что-то вроде

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

Ответ 6

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

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

Ответ 7

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

hostname:port:database:username:password

читать больше здесь