Status keluar PostgreSQL saat menjalankan file

16

Saat menjalankan PostgreSQL dengan satu kode kesalahan perintah SQL dikembalikan seperti yang diharapkan:

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

Tetapi ketika menjalankan file, kesalahan ditekan:

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

Adakah yang tahu bagaimana cara mengembalikan kesalahan ini?

Adam Matan
sumber

Jawaban:

12

Menambahkan ini ke baris pertama file SQL berguna:

\set ON_ERROR_STOP 1

Komentar baru (Terima kasih!) Menyarankan solusi berikut:

-v ON_ERROR_STOP=1
-v ON_ERROR_STOP=on
Adam Matan
sumber
2
@ pt12lol Itu gagal bagi saya juga, ini berhasil:psql -v ON_ERROR_STOP=on -f file_name.sql
Morgen