Tenho um banco criado usando o psql no ambiente de desenvolvimento

1. Tenho um banco criado usando o psql no ambiente de desenvolvimento

TheMagicOfOz
TheMagicOz

(usa PCLinuxOS)

Enviado em 28/05/2018 - 16:01h

Tenho um banco criado no ambiente de desenvolvimento, pelo psql, como faço um shell script interagindo com esse banco ?


  


2. Re: Tenho um banco criado usando o psql no ambiente de desenvolvimento

Hugo Cerqueira
hrcerq

(usa Outra)

Enviado em 28/05/2018 - 22:15h

Olá.

Você quer criar um script Shell ou um script SQL? Porque o psql é um interpretador de comandos SQL e não de Shell Script. Não sei se entendi bem o que você precisa. Mas se o que precisa é simplesmente executar uma sequência de comandos SQL, você pode criar um arquivo com todos os comandos sql e importá-lo pelo psql.

---

Atenciosamente,
Hugo Cerqueira


3. Poderia me ajudar como faço isso então , um comando com o formato .sql

TheMagicOfOz
TheMagicOz

(usa PCLinuxOS)

Enviado em 29/05/2018 - 14:09h

Poderia me ajudar como faço isso então , um comando com o formato .sql ou psql e rodar dentro do terminal psql, qualquer script como exemplo, esotu perdido :/


4. Re: Tenho um banco criado usando o psql no ambiente de desenvolvimento

Hugo Cerqueira
hrcerq

(usa Outra)

Enviado em 29/05/2018 - 14:55h

TheMagicOz escreveu:

Poderia me ajudar como faço isso então , um comando com o formato .sql ou psql e rodar dentro do terminal psql, qualquer script como exemplo, esotu perdido :/


Certamente. Mas vamos por etapas. Primeiro, você já tem o script SQL que deseja executar? A primeira etapa é criar este script. Se já o tiver, a segunda etapa é criar um shell script que vai acionar o psql para executar o script SQL criado.

Esse shell script pode ser criado (no meu exemplo aqui com o nome meuScript.sh), com o seguinte conteúdo:

#!/bin/bash
PGPASSWORD=minhaSenha
psql -U meuUsuario meuBanco -f /caminho/para/meusComandos.sql


Observe que eu coloquei no exemplo o caminho absoluto para o script SQL (meusComandos.sql). É uma maneira de evitar que o script falhe se eu por acaso mudar o script shell de diretório. Mas isso fica a seu critério, se preferir pode colocar o caminho relativo também, caso julgue mais provável que mude os dois arquivos de lugar.

Outro detalhe é que no exemplo coloquei a senha do usuário em uma variável dentro do próprio script. Mas existem outras opções, você pode deixar o usuário que vai executar esses comandos configurado no arquivo pg_hba.conf para não precisar autenticar. Existem meios seguros de fazer isso, como por exemplo, só permitir que ele não informe senha se estiver fazendo conexão local.

Atenção: certifique-se de que o usuário que informar tenha acesso ao banco especificado. Muitos usuários perdem horas achando que o problema está no script criado quando na verdade está na configuração do arquivo pg_hba.conf.

Para tornar o script shell executável:

chmod +x meuScript.sh 


Depois, para executá-lo:

./meuScript.sh 


Ou então:

sh meuScript.sh 


Por fim, se precisar que esse comando seja executado periodicamente, pode usar o serviço cron (vide comando crontab) para agendar a execução. Mas lembre-se que nesse caso é ainda mais importante atentar para o caminho do script SQL. Você pode passar o caminho absoluto, ou, se preferir, armazenar esse caminho em uma variável de ambiente.

---

Atenciosamente,
Hugo Cerqueira






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts