Stato di uscita PostgreSQL durante l'esecuzione di un file


16

Quando si esegue PostgreSQL con un singolo comando SQL, i codici di errore vengono restituiti come previsto:

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

Ma quando si esegue un file, l'errore viene eliminato:

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

Qualche idea su come recuperare questi errori?

Risposte:


12

L'aggiunta di questo alla prima riga del file SQL fa il trucco:

\set ON_ERROR_STOP 1

Nuovi commenti (grazie!) Suggeriscono le seguenti soluzioni:

-v ON_ERROR_STOP=1
-v ON_ERROR_STOP=on

2
@ pt12lol Anche questo è fallito, ha funzionato:psql -v ON_ERROR_STOP=on -f file_name.sql
Morgen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.