| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/04/2008 09:11:36
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Bom Dia a todos!
Recorro até vocês em busca de idéias, pois não sei que rumo tomar. É o seguinte: Usamos banco de dados postgree. Cada vez que é feita uma atualização/manutenção no banco por nós, programadores, é gerado um arquivo de script contendo o sql referente a tal operação.
Quando vamos atualizar a base de dados em nossos clientes, mandamos este arquivo para os vendedores/técnicos que abrem o postgree e executam o arquivo texto. Pronto, o banco do cliente, encontra-se atualizado.
Mas ocorrem situações em que o cliente está há meses com o banco desatualizado, e nestes casos, já existem dezenas de arquivos de scripts novos, e então os vendedores/técnicos precisam rodar cada um dos arquivos no cliente. Isso resulta em muito trabalho, pouca eficiência, muito desconforto, pois os clientes muitas vezes são descontrolados e rodar dezenas de arquivos textos com o cliente te pressionando do lado, não é muito bom (não queria estar na pele do técnico nesta hora).
E este fato, gera ainda outros problemas, como:
- Temos clientes em todo o RS e alguns em outros estados. Para o cliente atualizar a base de dados, somente quando nossos técnicos os fazem uma visita, pois o cliente, por si só, não saberia abrir o postgree e rodar o script.
- E outro, cada vez que nós, os programadores, precisamos retornar para uma versão antiga do banco, novamente, temos que rodar todos aqueles script, quando vamos atualizá-los posteriormente.
Gostaria, que os amigos do Guj, com experiência no assunto, pudessem me dar alguma sugestão, de como fazem a atualização das suas bases de dados. Me dar sugestões de metodologias, tecnologias, alguma forma que pudesse automatizar a atualização do banco de dados.
Atualmente, nós fizemos assim: Abrimos o postgree, abrimos o arquivo texto, copiamos o sql do arquivo texto, colamos ele na opção "sql" do postgree e executamos. E quando são dezenas de arquivos com falei, esse processo é repetido dezenas de vezes. E quando o processo acontece no cliente, isso se torna ainda pior.
Gostaria de por exemplo, dar dois cliques em cima de um arquivo de script, ele ser capaz de identificar qual foi o último script rodado e atualizar a base de dados a partir deste.
O que eu desejava mesmo era que pudessemos mandar somente, por exemplo, um executável(?) para o cliente, e ele mesmo pudesse roda-lo e atualizar seu banco. De maneira simples, pratica e eficiente.
Agradeço possíveis ajudas.
Desculpem se fui meio enrolado e não consegui explicar direito.
This message was edited 2 times. Last update was at 10/04/2008 10:02:53
|
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) 03/04/2008 10:37:24
|
Mauricio Linhares
Moderador
![[Avatar]](/images/avatar/97af07a14cacba681feacf3012730892.jpg)
Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline
|
Você poderia integrar os migrations do rails a sua aplicação Java usando JRuby -> http://wiki.rubyonrails.org/rails/pages/UnderstandingMigrations
|
Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr
Screencast de Introdução a linguagem Objective-C |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 03/04/2008 12:35:30
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Só para informação, o sistema é desktop.
Mauricio, tu poderia me dar uma descrição de como funciona isso? E o que eu precisaria para implementar uma possível solução baseado neste teu link?
|
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) 10/04/2008 10:01:39
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
Bem... resgatei um post meu de algumas semanas atrás. Deixei um pouco de lado esta implementação mas agora preciso fazer.
Vou refazer a pergunta de uma maneira simples e direta, sem enrolação - e mantendo a política de evitar duplicação de tópicos.
Como posso manter o banco de dados do cliente atualizado exatamente igual ao meu (tabelas, colunas - exceto os registros né). E fazendo o cliente executar a atualização, de maneira simples e prática.
Agradeço.
|
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) 10/04/2008 19:43:05
|
Linkel
JavaEvangelist
![[Avatar]](/images/avatar/ff4c48e9995f076b26fb2a90ae28d5aa.jpg)
Membro desde: 09/08/2007 10:51:16
Mensagens: 476
Offline
|
Fera, não sei se entendi...
Se entendi, você pode desenvolver uma aplicaçãozinha que gere esse scrit para um arquivo de texto .sql contendo somente a estrutura inteira do banco, e possibilite a leitura desse arquivo e consequente execução dele no postgreSQL...
Estou trabalhando num Criador de Instaladores para destribuições .jar que deverá gerar o script do banco informado (também uso PostgreSQL) e o instalador no momento da instalação deverá ler esse script e gerar o banco com toda a sua estrutura.
Segue a mesma idéia sua.
É uma solução legal e fácil de se fazer usando leitura/gravação aleatória a arquivo de texto com a classe Scanner, por exemplo...
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) 10/04/2008 21:57:54
|
fernandoeick
JavaEvangelist
Membro desde: 24/01/2007 14:18:48
Mensagens: 489
Localização: Campinas-SP
Offline
|
É, é esta mesma a idéia do que quero fazer. Porém não sabia muito por onde iniciar, agora já sei.
Por exemplo:
Como pegar toda a estrutura do banco? Agora eu consegui, não sei se você já fez isso, mas neste tópico, supri minhas dúvidas.
http://www.guj.com.br/posts/list/87511.java
Não sabia como fazer isso. Esta foi a solução que encontrei. Se vc tiver alguma outra sugestão.
Bem, então agora consigo pegar toda a estrutura de um banco de dados através de linha de comando. Agora, precisa fazer isso através do java... quero começar isso amanhã.
E, o próximo passo é fazer com o que o cliente leia este arquivo e execute na sua máquina.
Mas eu fico pensando, porque o cliente já possui o seu banco devidamente funcionando. Eu não quero reconstruir todo o banco ou gerar um novo e sim somente atualiza-lo.
Bom ainda estou amadurecendo e pensando, não sei bem o que devo fazer. A inexperiência me impede de ter uma solução pronta na cabeça. Mas é por aí...
Abração.
|
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) 11/04/2008 07:52:53
|
Linkel
JavaEvangelist
![[Avatar]](/images/avatar/ff4c48e9995f076b26fb2a90ae28d5aa.jpg)
Membro desde: 09/08/2007 10:51:16
Mensagens: 476
Offline
|
Então, fera...
Sua própria aplicação pode fazer um dump do seu banco de dados via JDBC gerando um arquivo de texto com a extensão .sql, isso apenas para os dados do BD do cliente, sendo que a estrutura do banco pode ser feita com o pgAdminIII mesmo ou pg_dump, já que isso deve ser tarefa rotineira de qualquer desenvolvedor de aplicações com acesso a banco de dados, rsrsrsrsr...
Você poderia estar disponibilizando esse arquivo de script do banco por e-mail, sei lá, ou por um site seu da web, para facilitar e automatizar o processo, assim você poderia implementar em sua aplicação um "get" desse script pela URL e executar automaticamente a atualização sem o usuário nem perceber, rsrsrs...
Um script .sql é muito pequeno em tamanho físico no disco por maior que seja seu banco... Sendo assim não tem problema você gerar o script do banco inteiro, aliás assim é muito mais seguro, porque garante a integridade global de todo o banco... Para isso tem uns parâmetros no processo de dump do PostgreSQL que possibilitam gerar no script os comandos de, primeiramente, apagar o BD obsoleto, criar o mesmo BD posteriormente e então criar a sua estrutura atualizada de novo, daí viria o script gerado pela aplicação do lado do cliente que reabasteceria esse BD com seus dados... É simples...
Estamos aí!
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 |
|
|
 |
|
|
|
|