Status de saída do PostgreSQL ao executar um arquivo


16

Ao executar o PostgreSQL com um único comando SQL, os códigos de erro são retornados conforme o esperado:

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

Mas ao executar um arquivo, o erro é suprimido:

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

Alguma idéia de como recuperar esses erros?

Respostas:


12

Adicionar isso à primeira linha do arquivo SQL faz o truque:

\set ON_ERROR_STOP 1

Novos comentários (Obrigado!) Sugerem as seguintes soluções:

-v ON_ERROR_STOP=1
-v ON_ERROR_STOP=on

2
@ pt12lol que falhou para mim, bem, isso fez trabalho:psql -v ON_ERROR_STOP=on -f file_name.sql
Morgen
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.