что не так с этой командой:
pg_dump -U postgres -W admin --disable-triggers -a -t employees -f D:\ddd.txt postgres
Это дает ошибку слишком большого количества аргументов командной строки
что не так с этой командой:
pg_dump -U postgres -W admin --disable-triggers -a -t employees -f D:\ddd.txt postgres
Это дает ошибку слишком большого количества аргументов командной строки
Похоже, это опция -W. Нет смысла идти с этой опцией.
-W, --password force password prompt (should happen automatically)
Если вы хотите запустить команду без ввода пароля, используйте файл .pgpass. http://www.postgresql.org/docs/9.1/static/libpq-pgpass.html< /а>
-W admin
, а не только -W
- person Daniel Vérité; 10.08.2012
Для потомков обратите внимание, что pg_dump и pg_restore (и многие другие команды) не могут обрабатывать длинные дефисы, создаваемые текстовыми процессорами. Если вы вырезаете и вставляете командные строки из текстового процессора, убедитесь, что он не преобразовал ваши дефисы во что-то другое при редактировании. В противном случае вы получите командные строки, которые выглядят правильно, но безнадежно запутывают анализаторы аргументов в этих инструментах.
pg_dump и pg_restore должны запрашивать пароль в командной строке, если вы поставите это команду, они всегда будут выдавать слишком много ошибок аргументов командной строки. Вы можете использовать ниже для установки связанной переменной среды в командной строке или пакетном файле:
"SET PGPASSWORD=<password>"
чтобы вас не просили вводить пароль вручную в пакетном файле. Они используют заданную переменную среды.
Вместо передачи пароля с флагом -W
начните с установки временной переменной для postgres:
PGPASSWORD="mypass" pg_dump -U postgres--disable-triggers -a -t employees -f D:\ddd.txt postgres
-W
-> запросит пароль для получения полного дампа БД, используйте что-то вроде
pg_dump -h 192.168.44.200 -p 5432 -U postgres -W -c -C -Fc -f C:\MMM\backup10_3.backup DATABASE_NAME
Я получил это от копирования-вставки, где 1 черточка была другой.
Было: –-host=
(первый тире я "длинный" тире) Исправил на --host=
решил это
Другой вариант — добавить ~/.pgpass
файл с таким содержимым:
hostname:port:database:username:password
подробнее здесь