O que é dump?  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
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!
[MSN]
Linkel
JavaEvangelist
[Avatar]

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
[Email] [WWW] [MSN]
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!
[MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team