Introduzir a senha do PostgreSLQ automaticamente usando o parâmetro psql e -F no script bash

0

Estou tentando desenvolver um CLI usando o script bash para recuperar relatórios de um banco de dados PostgreSQL .

Estou usando o comando psql e o parâmetro -F para criar um arquivo CSV com o resultado.

Então o comando é algo assim:

psql -h myhost -p 5432 -U myuser -d mydatabase -W -A -F"," -c "<MY QUERY>" > $(date +%Y%m%d%H%M)_report.csv

Quando executo este comando, sempre é solicitado o pedido de senha, mesmo se eu usar a variável PGPASSWORD para configurar a senha antes de executá-la.

Se eu apenas tentar conectar, ele será executado, mas se eu adicionar o -W -A -F -c e enviá-lo para um arquivo específico, ele não funcionará.

Existe alguma outra possibilidade de introduzir automaticamente a senha do banco de dados?

    
por EnriMR 15.09.2017 / 10:25

1 resposta

1

TL; DR : apenas remova -W das suas opções do psql.

% bl0ck_qu0te%

"Sempre pedir a senha" é para o qual a opção -W é. Em particular, isso acontece antes de verificar com o servidor se uma senha é necessária, o que depende das regras configuradas em pg_hba.conf .

Do manpage do psql:

% bl0ck_qu0te%     
por Daniel Vérité 15.09.2017 / 15:07