[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