2010-12-16 1 views
9

나는 명령 행에서 (즉, psql을 사용하여) PostgreSQL 데이터베이스를 생성하고있다.psql -o 내가 예상했던 것과 다르다 (출력 파일에 db 응답을 출력하는 방법)

내 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

그 중 아무 것도 파일에 기록되는 화면의 데이터 깜박임을 초래하지 않습니다. 어떻게해야합니까?

+0

''pg_dump'을 해봤습니까? http://www.cyberciti.biz/tips/tag/pg-dump-command – sje397

+0

'-U'는 사용자 이름을 지정하기위한 것으로, 명령 행에 어떤 목적을 제공합니까? –

답변

11

stderr를 리디렉션해야합니다. 유엔 * X 및 Linux :

psql ... 2>error.log 

또는 표준 출력과 표준 에러 모두 :

psql -v ON_ERROR_STOP=1 ... 

A : 당신이 하나씩 오류를 조사하기 원한다면 한편

psql ... &>error.log 

psql - here으로 SQL 스크립트를 실행하는 데 도움이되는 기사.

+0

내가 필요한 것처럼 보입니다. 다른 질문 (명령 줄의 -U 옵션) -이 명령을 완전히 실행할 수있는 방법이 있습니까 (예 : bash 스크립트에서). 자동으로 암호를 입력하지 않아도됩니까? – skyeagle

+0

아주 좋은 기사 BTW. 나는 맛있는에서 그것을 표를 한 책이있다! – skyeagle

+1

[.pgpass] (http://www.postgresql.org/docs/current/static/libpq-pgpass.html)를 사용하십시오. –

관련 문제