[firebase-br] Liberação de uma nova versão para o cliente

Adriano dos Santos Fernandes adrianosf em uol.com.br
Sex Nov 14 16:06:32 -03 2008


Magno System escreveu:
> Eu faço da seguinte maneira. Eu adoto o sistema de versões de estrutura 
> de banco de dados. Tenho uma tabela no banco chamada VERSÃO. Quando eu 
> criei a estrutura pela primeira vez, esta tabela continha o valor 0. A 
> cada nova versão de estrutura eu faço um SCRIPT de atualização com o 
> programa DATABASE COMPARER da CLEVER COMPONENTS. Com este programa eu 
> comparo a versão atual que vou disponibilizar com a versão anterior e 
> gero um SCRIPT.
> 
> Hoje tenho um módulo para farmácia (SNPGC) que funciona com FIREBIRD 
> EMBEDDED no qual eu tenho 14 scripts de atualização entre a primeira 
> versão e a mais recente. Então se um usuário da versão 2.0 atualiza para 
> 5.2, por exemplo, o executável lê o número da versão do banco dele, que 
> poderia ser 5 por exemplo. Desta forma o sistema vai executar os SCRIPTS 
> de 6 a 14. Tem funcionado muito bem desta maneira. Os SCRIPTS são 
> executados através do IBOSCRIPT. Nas primeiras versões usava o MDOSCRIPT 
> e também funcionava muito bem.
> 
Um ponto forte sobre este tipo de atualização é que o FB pode rodar DDL 
e DML na mesma transação, portanto é possível saber se a atualização 
realmente foi ou não rodada, já que o registro de versão será comitado 
junto com as alterações estruturais.


Adriano





Mais detalhes sobre a lista de discussão lista