Postgresql gerar script de um banco populado [resolvido]

8 respostas
D

Acho que o título do tópico ja diz tudo… hehehe

tenho um banco que peguei de um amigo e ja esta populado…
Existe alguma forma de eu gerar um script a partir de uma tabela,
onde eu possa gerar tanto o create table quanto os inserts ?

alguem conhece alguma forma de fazer isso?
abraçs

8 Respostas

F

Tem sim cara, terá que usar o pg_dump:

No prompt de comando, acessar o diretório \bin da pasta de instalação do postgres.

Para rodar o script, digite:

psql -d <<nome do banco >> -U <<usuario>> -f <<caminho arquivo script: \script.sql>>

Só isso!

S

cara pega o pgadmin … clica em cima do banco de dados desejado… vai na opcao backup … la vc seleciona modo plain text e seleciona opcao comandos de insert . abraco

D

valeeuu gente!
abraços

M

Pessoal, estou fazendo exatamente como o “fabiomedeirosf” disse, mas não deu certo
Vejam o que estou digitando no Prompt de comando do Win XP:

C:\PostgreSQL\8.4\bin>psql -d LivrariaVirtual -U postgres -f c:\PostgreSQL\8.4\bin > teste123456.sql

Sempre dá o erro abaixo:
c:/PostgreSQL/8.4/bin: Permission denied

O que estou errando?

— C:\PostgreSQL = diretório de instalação do PostGre
— C:\PostgreSQL\8.4\bin = localização do psql
— LivrariaVirtual = Banco de dados populado e que desejo copiar, com os scripts de criação das tabelas e de inserção de dados que já estão nessas tabelas
— postgres = meu usuario da base de dados LivrariaVirtual
— teste123456.sql = backup que desejo obter (script para criação das tabelas e preenchimento com os dados)

Obrigado!!!

D

Meu amigo,

eis o método que utilizo para realizar o backup...
veja se através dele você consegue resolver seus problemas...
QQer duvida, tamo aí

private void realizaBackup(String caminhoDoPg, String caminhoSalvar, String nomeArquivo) {
        try {
            ProcessBuilder pb;
            Process p;
            pb = new ProcessBuilder(caminhoDoPg + "pg_dump.exe", "-i", "-h", "localhost", "-p", "5432", "-U", "postgres", "-F", "c", "-b", "-v", "-f", caminhoSalvar + "" + nomeArquivo + ".backup", "ParceirosTst");
            pb.environment().put("PGPASSWORD", "tux@2pg");
            pb.redirectErrorStream(true);
            p = pb.start();
            labelStatus.setText("Concluído");
            Mensagem.mensagemSucesso(this, "O backup está sendo criado em segundo plano.");
            this.dispose();

        } catch (IOException ioe) {
            Mensagem.mensagemErro(null, "Erro ao realizar backup!");
            labelStatus.setText("Erro");
            ioe.printStackTrace();
        }

    }
M

Olá d34d_d3v1l, tudo bem? Obrigado por responder, mas creio que me expressei mal ao perguntar.

Eu me referia a fazer backup pelo prompt de comando do Windows XP (ou seja, “na unha”) ou mesmo em modo gráfico pelo pgAdmin3 (da mesma forma que geramos o script no MySQL Admnistrator). Eu não encontrei o modo de gerar o script que cria as tabelas e depois insere os dados nelas (como no MySQL). Se esses scripts (criação e preenchimento) ficarem em arquivos separados, isso é o de menos, mas quero aprender a fazer um backup bem feito.

Não consigo fazer nada pelo prompt de comando porque todos os arquivos de gerenciamento da pasta bin (*.exe) do Postgres deram erro.

Vou testar em casa seu método de backup em java, muito obrigado! Abração

D

Meu amigo,

se em modo gráfico pelo pgAdmin resolve seu problema,
então baixa vc clicar com o botão direito na sua base de
dados e selecionar:

“Backup…”

abraçao

M

Muito obrigado, d34d_d3v1l, abração e sucesso!

Criado 24 de julho de 2011
Ultima resposta 4 de mai. de 2012
Respostas 8
Participantes 4