psql -o не то, что я ожидал (как вывести ответ db на выходной файл) - PullRequest
9 голосов
/ 16 декабря 2010

Я создаю базу данных PostgreSQL из командной строки (т.е. с помощью psql).

В моих операторах SQL есть некоторые ошибки, и я хочу выяснить, где происходят ошибки (слишком много объектов, чтобы заполнить экранный буфер - поэтому мне нужно сохранить thios в файл)

Я попробовал почти все, от использования опции -o, опции -L и использования tee - я все еще не могу захватить информацию, которая проходит мимо на экране.

Как мне войти?

Это то, что я пробовал до сих пор:

  • psql -U -o dbcreate.log -f file.sql
  • psql -U -L dbcreate.log -f file.sql
  • psql -U -a -f file.sql | tee dbcreate.log

Ничего из этого не приводит к миганию данных по экрану, регистрируемому в файл - как мне это сделать?

1 Ответ

13 голосов
/ 16 декабря 2010

Вам нужно перенаправить stderr.В Un * x и Linux:

psql ... 2>error.log

или как stdout, так и stderr:

psql ... &>error.log

С другой стороны, если вы хотите исследовать ошибки по одной:

psql -v ON_ERROR_STOP=1 ...

Полезная статья о выполнении сценариев SQL с помощью psql - здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...