PostgreSQL-Beendigungsstatus beim Ausführen einer Datei


16

Wenn PostgreSQL mit einem einzelnen SQL-Befehl ausgeführt wird, werden wie erwartet Fehlercodes zurückgegeben:

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

Beim Ausführen einer Datei wird der Fehler jedoch unterdrückt:

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

Irgendeine Idee, wie man diese Fehler zurückbekommt?

Antworten:


12

Fügen Sie dies in die erste Zeile der SQL-Datei ein, um den folgenden Trick zu erzielen:

\set ON_ERROR_STOP 1

Neue Kommentare (Danke!) Schlagen folgende Lösungen vor:

-v ON_ERROR_STOP=1
-v ON_ERROR_STOP=on

2
@ pt12lol Das ist mir auch nicht gelungen, das hat funktioniert:psql -v ON_ERROR_STOP=on -f file_name.sql
Morgen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.