Dump do PostgreSQL pelo PHP com pg_dump

686 views
Skip to first unread message

Eduardo Alexandre

unread,
Aug 30, 2011, 8:04:15 PM8/30/11
to php-b...@googlegroups.com
Olá,

Vi algumas referências a respeito de scripts em PHP para exportação de databases do PostgreSQL.
Mas eu estava interessado em rodar o pg_dump a partir do PHP.

Tem como invocar o pg_dump a partir do PHP?

Caso positivo, com a consulta SELECT datname AS banco FROM pg_database ORDER BY datname, poderia fazer um fetch dos databases e passar como valor para o comando pg_dump.


Abraços,
____________________
Eduardo Alexandre


Iuri Andrei Guntchnigg

unread,
Aug 30, 2011, 8:56:41 PM8/30/11
to php-b...@googlegroups.com
Cara,
função nativa não tem.
teria de implementar algo.
 tem as funcoes pg_copy_from , que copia os dados de uma tabela para o array ,
pg_meta_data, que retorna as informações de uma tabela.

Também da para fazer uma chamada via system para o pg_dump.. mas é pog.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "php-brasil" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para php-b...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para php-brasil+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/php-brasil?hl=pt-BR.

Eduardo Alexandre

unread,
Aug 31, 2011, 11:00:40 AM8/31/11
to php-b...@googlegroups.com
Poxa. Pra efeito de compatibilidade, acho que vou preferir sua sugestão de pog. :)

Abraços,
____________________
Eduardo Alexandre

Paulo Soares

unread,
Aug 31, 2011, 1:03:48 PM8/31/11
to php-b...@googlegroups.com
Estava trabalhando nisso ontem, em backup do postgres usando a função
pg_dump e php, segue um código funcional:

<?php

$comand = "export PGPASSWORD=senha && export PGUSER=usuario;
$comand .= " && pg_dump -d banco -Fc > arquivodesaida.psql";
$comand .=" && unset PGPASSWORD=senha && unset PGUSER=usuario

//Função do Php
exec($comand,$saida,$retorno);

?>

O comando básico seria : <?php exec("pg_dump -U usuario -d
bancodedados -Fc > arquivodesaida.psql ?>

O paramento -Fc diz que o arquivo de saída tem um formato customizando.

Porém para esse comando simples pede a senha do usuário postgres, para
isso criei uma variável de ambiente reconhecida pelo postgres para
setar o valor da senha e usário;

Esse código só funciona em ambiente linux:


Em 31 de agosto de 2011 12:00, Eduardo Alexandre
<eduar...@gmail.com> escreveu:

--
Paulo Soares da Silva
Graduando em Ciência da Computação
Universidade Federal de Alagoas - Campus Arapiraca
Desenvolvedor de Sistemas Web

Reply all
Reply to author
Forward
0 new messages