Re: [firebase-br] Versão de banco de dados
Alexandre Trindade
alexandre em habitus.com.br
Sex Jan 27 16:00:04 -03 2006
Pessoal, deixa eu me meter na conversa de vocês....
Estou passando pelo mesmo problema, e até encontrei uma solução que considero ser muito boa, mas estou com um pequeno problema.
Primeiro a solução:
Mantenho um único executável de atualização, onde dentro dele está o executável mais recente e um script de todas as atualizações do banco de dados. Quando o cliente executa esta atualização, ele checa a versão do executável do sistema, e atualiza apenas se a versão instalada for menor.
Agora vamos ao script.
O script contém todas as atualizações feitas no banco de dados desde o lançamento do sistema. Além disso, tenho uma tabela chamada VERSOES com apenas um campo CODIGO. Então a estrutura do script é mais ou menos assim:
/* Primeira atualização do sistema */
if exists(select * from VERSOES where codigo = 1) then
begin
alter procedure sp_calcula_saldo_cliente ..... ;
insert into VERSOES values (1);
end
/* Segunda atualização do sistema */
if exists(select * from VERSOES where codigo = 2) then
begin
recreate table VENDAS .... ;
insert into VERSOES values (2);
end
A grande sacada, é que independente da versão que meu cliente esteja utilizando, qualquer um que baixar o arquivo de atualizações, irá atualizar o sistema para a versão mais recente!!!
Mas........
o grande problema é que não sei como fazer scripts condicionais no firebird!!! ALGUEM AÍ TEM IDÉIA???
From: Romulo Oliveira
To: lista em firebase.com.br
Sent: Friday, January 27, 2006 2:39 PM
Subject: Re: [firebase-br] Versão de banco de dados
Gabriel,
Opa! Podemos converar. . Jà pensei em diversas formas de implementar isto e
simplesmente não cheguei a uma forma eficiente.
Já pensei em manter um arquivo com os comandos SQL que devem atualizar o
banco. Tipo:
Da versão 1.0.1 para 1.0.4
ALTER TABLE
INSERT
ALTER TABLE
Da versao 1.04 para 2.0
..
..
..
Tipo, eu guardar as mudanças da base entre as versões e o programa ao ser
executado pegaria a versao dele (que sempre deve ser a ultima, mas nem
sempre é assim) e atualizar os comandos. Mas é mt sujeitoa falha.
Outra forma que pensei era recriar a base nova em um banco vazio e depois
transportar oso dados para a nova estrutura, assim já mantendo uma copia
exata da base original antes da atualização. Desisti pois achei que nao
ficaria funcional.
Explique como fez, acho que isso dáuma boa discussão!
Vlw!
Abraços,
Romulo
Rio das Ostras / RJ
"Gabriel Hilbig" <ghilbig em bol.com.br> escreveu
na mensagem news:drdlbg$flr$1 em sea.gmane.org...
> Fabrício;
>
> Tivemos o mesmo probl que vc.
>
> A solução foi desenvolver uma Rotina de Atualização do BD.
>
> Nosso exectável carrega um ARRAY com TABELAS , CAMPOS, TIPOS, INDICES,
> TRIGGERs, etc ....
>
> O próprio software avalia o BD instalado no CLI e , havendo qq
divergência,
> ele mesmo corrige CRIANDO CAMPOS , IDXs , etc.
>
> --
> Gabriel Hilbig
>
> "Fabrício Fadel Kammer"
> <ffkammer em conchalnet.com.br> escreveu na
> mensagem news:005701c6236d$f7d4e590$1b0aa8c0 em fabricio...
> Boa tarde lista,
>
> Gostaria da opnião de todos sobre controle de versão de banco de dados.
>
> Meu software está crescendo demais e queria ter uma forma de previnir
> que meus clientes utilizassem uma versão do executável que não é
> compatível com o banco de dados em uso. Alguém na lista faz esse tipo de
> controle? Se sim, como?
>
> Grato,
>
> Fabrício F. Kammer
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
>
>
----------------------------------------------------------------------------
----
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
------------------------------------------------------------------------------
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista