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?

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

2
@ pt12lol Też mi się nie udało, to zadziałało:psql -v ON_ERROR_STOP=on -f file_name.sql
Morgen
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.