[firebase-br] Como manter bases de cliente sincronizadas (estrutura do banco)

Alexandre camilo em apollosistemas.com.br
Sex Set 18 09:57:17 -03 2015


Bom dia Rodrigo
     Aqui na empresa utilizamos o Delphi, e fazemos todo o trabalho por ele.
     1)No bd, tenho uma tabela de controle, onde quando termino de 
atualizar eu guardo a versão do software que executou a atualizacao.
     2) Para cada versão que que sai, se for alterar estrutura do banco 
a gente cria uma função (Function atu_20015...), quando inicio o 
sistema, verifico se a versão do executável for maior que a versão que 
esta gravada no banco, executo todas as funcoes posteriores a que estava 
gravada no banco.
Ex.:
     1) estou na versão 1.0.0.0, no controle esta gravado esta versão.
     2) liberei varias versão mas o cliente não atualizou;
     3) Liberei a verão 1.0.0.50, ao entrar no sistema comparo as 
versões e executo as funcoes de atu_1001 até atu_10050;
     4) Claro que nas funcoes faço verificação para não criar um campo 
que já existe, chaves, indices....

tem funcionado blz, sem problemas.



Alexandre Camilo



Em 18/09/2015 09:24, Rodrigo escreveu:
> Bom dia, gostaria de contar com a ajuda e experiência dos companheiros da lista. Hoje estou tento vários problemas para manter a estrutura do banco de dados dos meus clientes atualizada. Além de ser um processo trabalhoso está sujeito a muitos erros. Como funciona:
>
> 1-tenho um bd na internet que guarda os scripts
> 2-comparo a última versão do meu banco com a nova, gero um script e salvo neste banco com um nr de versão
> 3-ao entrar no sistema o mesmo checa esse numero de versão e se for diferente baixa o script e roda o mesmo
> 4-este processo funciona perfeito num mundo perfeito
>
> Problemas:
> 1-se alterei alguma coisa no cliente, para uma correção urgente, já furou o script de atualização
> 2-se o cliente está várias versões desatualizadas a chançe de não rodar o script é maior
> 3-qualquer problema que a atualização pare na metade já complica também
> 4-o cliente fica com o sentimento que cada atualização é uma bomba
>
> Nessas situações tenho que pegar o banco do cliente e gerar um script personalizado para atualizar certinho
>
> Soluções?
>
> 1) a clever components tem uma suíte vcl para automatizar tudo isso, comparando com um banco padrão, o problema é que em meus testes (ano passado) o script de atualização se perdeu várias vezes, coisa que não acontece no ibexpert
> 2) o ibexpert tem a DLL ibscript, que faria isso também, mas não cheguei a me aprofundar em como usá-la, apenas alguns testes básicos, é um pouco mais complicada para usar
>
> Outra questão, comparar o banco do cliente "on the fly", com um banco padrão atualizado, creio que teria que ser com o script do banco padrão e estar criptografado, por questões de segurança
>
>
> Desculpe o texto longo mas creio que essa questão é sempre uma grande dúvida e obrigado a quem puder ajudar.
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://www.firebase.com.br/pesquisa_lista.html
>

-- 

Alexandre Camilo
+55 27 3233-4143





Mais detalhes sobre a lista de discussão lista