Statut de sortie de PostgreSQL lors de l'exécution d'un fichier


16

Lors de l'exécution de PostgreSQL avec une seule commande SQL, les codes d'erreur sont renvoyés comme prévu:

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

Mais lors de l'exécution d'un fichier, l'erreur est supprimée:

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

Une idée de comment récupérer ces erreurs?

Réponses:


12

L'ajout de cela à la première ligne du fichier SQL fait l'affaire:

\set ON_ERROR_STOP 1

De nouveaux commentaires (merci!) Suggèrent les solutions suivantes:

-v ON_ERROR_STOP=1
-v ON_ERROR_STOP=on

2
@ pt12lol Cela a également échoué pour moi, cela a fonctionné:psql -v ON_ERROR_STOP=on -f file_name.sql
Morgen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.