| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2008 15:35:36
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Boa Tarde pessoal.
Não vou criar um tópico novo para uma discussão já existente.
Bom, é o seguinte: Faço o dump do meu banco, funciona blz.
O comando é o seguinte:
pg_dump -h localhost -p 5454 -U postgres -F t -s -v -D -d BancoPrincipal > "c:\backups\estruturaBanco.sql"
O que faço aqui é pegar a estrutura, somente a estrutura do banco do servidor que é um banco que está sempre atualizado, tabelas e tal.
Agora o restore eu faço assim:
pg_restore -h localhost -p 5454 -U postgres -d BancoDoCliente "c:\backups\estruturaBanco.sql"
Ou seja, copio a estrutura do banco do servidor, para o banco do cliente. Mas, o banco do cliente já possui as tabelas que o banco servidor possui, então o restore sempre dá erro. Caso o banco do cliente não possua alguma das tabelas, aquela o restore atualiza certo. O problema mesmo está nas tabelas já existentes.
Existe como sobrescreve-las uma tabela já existente com o pg_restore, sem mexer nos dados?
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/04/2008 20:38:11
|
Linkel
JavaEvangelist
![[Avatar]](/images/avatar/ff4c48e9995f076b26fb2a90ae28d5aa.jpg)
Membro desde: 09/08/2007 10:51:16
Mensagens: 476
Offline
|
Aí, fera...
O pg_dump tem a opção de deletar a estrutura do banco de dados antigo e criar um novo com a nova estrutura num mesmo script...
Então você cria primeiro um script contendo os dados do cliente, executa o script de atualização do banco que vai deletar o antigo e criar do zero o novo, e então restaura os dados com o script que criou...
Com o pgAdmin3 você faz isso visualmente e de forma bem prática... Mas o ideal é que a própria aplicação gere o script rodando o comando do pg_dump e pg_restore, ficando automatizada a atualização para o cliente... Para isso, faça pelo pgAdmin3 e copie o comando de saída que ele gera, daí você executa via JDBC da sua aplicação usando Statement...
Um abraço!
|
http://intelectolivre.blogspot.com "A liberdade dominando a mente!"
__
Lindoélio Lázaro
Pós-graduado em Desenvolvimento de Sistemas para a Web |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/04/2008 12:48:48
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Bom, eu já tentei fazer por este caminho que você descreveu, mas sempre que vou descarregar os dados em cima do banco com a estrutura atualizada, obtenho dezenas de erros.
Eu faço assim:
- gero o backup do dados do cliente
- apaga o banco do cliente e reconstruo com uma estrutura nova
- Descarrego os dados no banco com a nova estrutura (e aí obtenho os erros).
Tu tem como me passar um script de exemplo, caso você já tenha um, que faça o que você descreveu. Ou pelo menos me diga que parametros tu usa para fazer cada um dos passos acima... quem sabe eu esteja utilizando parametros incorretos.
|
Analista/Desenvolvedor Java
Graduado em Informática - Sistemas de Informação.
Sun Certified Java Programmer 6.0
Next Step: SCWCD 5
E dá-lhe Grêmio! |
|
|
 |
|
|