Status wyjścia PostgreSQL podczas uruchamiania pliku

16

Podczas uruchamiania PostgreSQL z jedną komendą SQL kody błędów są zwracane zgodnie z oczekiwaniami:

% psql -c "SELECT * FROM AWDASDASDASDAS" my_db
ERROR:  relation "awdasdasdasdas" does not exist
LINE 1: SELECT * FROM AWDASDASDASDAS
% echo $?
1

Ale podczas uruchamiania pliku błąd jest pomijany:

% psql -f test.sql my_db
psql:test.sql:1: ERROR:  relation "awdasdasdasdas" does not exist
LINE 1: SELECT * FROM AWDASDASDASDAS
% echo $?
0

Masz pomysł, jak odzyskać te błędy?

Adam Matan
źródło

Odpowiedzi:

12

Dodanie tego do pierwszego wiersza pliku SQL rozwiązuje problem:

\set ON_ERROR_STOP 1

Nowe komentarze (Dziękujemy!) Sugerują następujące rozwiązania:

-v ON_ERROR_STOP=1
-v ON_ERROR_STOP=on
Adam Matan
źródło
2
@ pt12lol Też mi się nie udało, to zadziałało:psql -v ON_ERROR_STOP=on -f file_name.sql
Morgen