Postgres : SQL 파일을 실행할 때 0이 아닌 종료 코드?


34

두 가지 형식을 사용하여 psql을 호출하는 쉘 스크립트를 작성 중입니다. 하나는 명령 (-c)이고 다른 하나는 파일 (-f)입니다.

예 : psql -c "테이블 foo 생성 (bar 정수)"

psql -f foobar.sql

이러한 형식의 한 가지 차이점은 오류 발생시 명령 호출 (-c)이 0이 아닌 종료 코드를 리턴하는 반면 파일 호출 (-f)은 항상 0을 리턴하는 것입니다.

이 동작에 대한 해결 방법이 있는지 궁금합니다. (즉, 파일을 실행하는 동안 오류가 발생하면 0이 아닌 값을 반환합니다).

감사.

답변:


37

아래 진술을 사용할 수 있습니다.

psql -v ON_ERROR_STOP=1 -f foobar.sql

foobar.sql파일이 파일 ON_ERROR_STOP상단에서 활성화되지 않은 경우에도 올바른 반환 코드를 반환 합니다.


21

이 문제를 해결하는 방법을 찾았습니다.

ON_ERROR_STOP파일 맨 위에서 활성화해야 합니다.

예:

\set ON_ERROR_STOP true

맨 페이지를 보면 +1 :)
serverhorror

가장 좋은 방법 +1 그것은 나를 변수를 설정할 수 있기 때문 나는 항상 제대로 실행 신뢰할 수있는 런타임 환경에 대한 걱정을하지 않아도, 스크립트.
Brandon
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.