Jump to content
Fórum Script Brasil
  • 0

Criar database e fazer restore do banco de dados PostgreSQL


dimaum1001
 Share

Question

Boa tarde, desenvolvi um projeto java desktop onde utilizo PostgreSQL, e agora vou distribuir essa aplicação utilizando Inno Setup, consigo fazer a instalação silenciosa do PostgreSQL, instalo meu aplicativo, mas quando vou criar uma database e restaurar o banco de dados na máquina do cliente fica pedindo a senha do banco de dados. Criei um arquivo .bat para fazer isto. 
Gostaria de saber se existe outra maneira para criar o banco de dados e restaurar sem ficar pedindo para o usuário digitar a senha do banco.
meu código do arquivo .bat é esse:

@Echo off

set superaccount=postgres
set superpassword=postgres

set caminho=%~f1
set caminho_backup=%~f2

c:
cd \
cd C:\Program Files\PostgreSQL\9.3\bin

@echo "Aguarde enquanto o banco de dados é atualizado..."

psql -U postgres -c "create database sade"

pg_restore.exe -i -h localhost -p 5432 -U postgres -d sade -v "C:\SADE 320\sade.backup"

pause

 
Link to comment
Share on other sites

9 answers to this question

Recommended Posts

  • 0

Já tentou definir a variável de ambiente  PGPASSWORD como abaixo?

set PGPASSWORD=senha

Ou usar -w ou --no-password diretamente na linha do pg_restore:

pg_restore.exe -i -h localhost -p 5432 -U postgres -w -d sade -v "C:\SADE 320\sade.backup"

Veja aí se alguma das duas tentativas dá certo.

Abraços!

 

 

 

Link to comment
Share on other sites

  • 0

Fiz o teste aqui no meu e não pede senha. Mas lembrei de outro detalhe, sempre gravo a senha através do PgAdmin III, por isso acho que ele não pede. Você pode então tentar fazer o mesmo, criando um arquivo chamado "pgpass.conf" em "c:\Users\NOMEDOUSUÁRIO\AppData\Roaming\postgresql" (onde NOMEDOUSUÁRIO é a pasta com o nome do usuário do Windows) com o conteúdo:

localhost:5432:*:postgres:SENHA

Ou simplesmente abrir o PgAdmin III e conectar no banco armazenando a senha.

Veja aí se dá certo.

Abraços!

Link to comment
Share on other sites

  • 0

Gravei este arquivo "pgpass.conf" e mesmo assim na hora de executar o meu arquivo .bat continua pedindo a senha, existe algum outro script será para fazer esta configuração ?

Abrindo p pgAdmin III e conectando no banco armazenando a senha e depois executando meu arquivo eu consegui fazer, não pediu a senha, mas tem algum jeito de fazer isso sem que o usuário precise digitar a senha da primeira vez  ? 

Edited by dimaum1001
Link to comment
Share on other sites

  • 0

Tem como saber pela variável de ambiente HOMEPATH. No seu projeto em Java você deve conseguir obtê-la através do método System.getenv(), ou pelo InnoSetup, se me lembro bem, você pode utilizá-la como parte do caminho de destino do arquivo.

Abraços!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...