[firebase-br] RES: Programa de Atualizar Sistema

Eduardo C ecostas em gmail.com
Ter Maio 25 11:39:46 -03 2010


Zotti, gostei de sua solução. Eu (ainda) assino essa lista somente
como curioso, pois uso o MySQL. A diferença do meu programa de
atualização de estruturas para o seu é que verifico se o campo existe,
caducou OU sofreu alteração. Sei que alterações são mais raras, mas
pode ser necessário aumentar o tamanho de um campo de texto, por
exemplo, ou um campo que era obrigatório sofrer um "relaxamento" e não
ser mais obrigatório .Infelizmente, no meu caso, praticamente cada
cliente tem uma "necessidade especial" ou alguma idiossincrasia que
atrapalha a análise mais criteriosa, mesmo que eu tivesse tido tempo
para fazer essa análise tão profunda ;). Meu maior problema talvez
seja justamente quanto a esses relaxamentos, em que o cliente teima
que manter tudo consistido diminui a produtividade e depois não sabe
porque existem dados inconsistentes no sistema. Estou escrevendo uma
nova família de produtos, tentando acabar com os "remendos" que foram
surgindo ao longo dos anos, mas já sabendo quão difícil é manter a
estrutura do banco realmente limpa.

Eduardo

Em 25 de maio de 2010 09:55, Zottis <bzottis em ig.com.br> escreveu:
> Na Minha opinião, ainda é melhor a opção de Monitorar as alterações.
> Exemplo tenho
> Uma Query assim:
>
> select RDB$RELATION_NAME,RDB$FIELD_NAME from RDB$RELATION_FIELDS
>  where
>  RDB$FIELD_NAME    =  (:VarCampo)  AND
>  RDB$RELATION_NAME =  (:VarTabela)
>
>
> Aí no início do meu sistema, chamo ela com
> O comando:
>
>  with CampoExiste do
>    begin
>      close;
>      ParamByName('VarCampo').AsString    := 'TEU_CAMPO_NOVO';//TEM QUE SER EM MAIUSCULO
>      ParamByName('VarTabela').AsString    := 'TUA_TABELA';//TEM QUE SER EM MAIUSCULO
>      prepare;
>      open;
>    end;
>    if  (CampoExiste.IsEmpty)then
>     begin
>       Script_COM_ATUALIZACAO.ExecuteScript;
>     end;
>
> Tenho feito deste jeito a um bom tempo e não precisei mais me preocupar em ir no cliente para alterar o Banco de Dados.
> Tudo é feito via FTP.
>
> Espero que ajude.
>
> -----Mensagem original-----
> De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em nome de Fernando Filho
> Enviada em: domingo, 23 de maio de 2010 15:31
> Para: FireBase
> Assunto: Re: [firebase-br] Programa de Atualizar Sistema
>
> Alex,
>   no caso do ruby, eu só sei um pouco dos conceitos, nunca trabalhei
> diretamente com ele..
> essa ideia do meu migrate surgiu justamente quando conheci +- como o ruby
> faz..lembrando que segundo um amigo meu
> que usa (se tiver alguem de ruby na lista pode explicar melhor ^^), isso é
> intrícito, ou seja, ele não precisa disparar nada, tudo funciona de forma
> automática, pois o ruby tem um esquema de mapeamento objeto/relacional
>
> no meu caso eu tenho uma tabela chamada migrate que lista os migrates
> "rodados" naquele banco.
> o sisteminha simplesmente lê a pasta migrate do servidor (uso deploy
> automatico, então quando atualizo o sistema, as migrates, que são os
> arquivos .sql vao junto.) e compara com a migrate da base. o que não tiver
> lá, ele roda. basicamente é isso.
>
> espero ter ajudado.
>
> abraços
> Fernando
>
>
> Em 23 de maio de 2010 14:46, Alex Miranda de Oliveira <
> alexsistemass em gmail.com> escreveu:
>
>> Achei muito interessante essa parte do migrate que voce falou que tem
>> em um sistema  seu..
>>
>> Acho que isso resolveria o meu problema e ficaria legal.
>> Sou Desenvolvedor Delphi e Java e este dias estava estudando um pouco
>> sobre ruby on rails.
>> Se talvez precisar fazer uma integraçao com o outra linguagem acho que nao
>> tera
>> problemas..
>> Se voce pode me dar umas explicacoes como funciona ou como vc fez..
>>
>>
>> Estava pensando em usar o componente fibscript da suite de componentes
>> fibplus delphi..
>> Mas ai nao teria controle de versao da alteracao ..
>>
>>
>> O que voce poder me ajudar ou o pessoal da lista fico grato
>>
>> Ate ++ Obrigador
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Em 23 de maio de 2010 13:44, Fernando Filho <nanfilho em gmail.com> escreveu:
>>
>> > ah tá, nesse caso posso te dar outros toques que tambem já fiz.
>> > tenho em um dos sistemas, uma pasta chama "migrate" onde coloco os
>> scripts
>> > da próxima versão.
>> > Fiz um sisteminha que compara com a versão do cliente e roda os scripts
>> que
>> > não tem lá, tenho uma tabela de mesmo nome
>> > no banco do cliente que faz essas verificações. é uma opção.
>> >
>> > curiosidade: pra quem trabalha com ruby on rails vai notar que ele faz um
>> > tratamento parecido e atualiza o script do banco automaticamente  caso
>> > tenha
>> > mudanças no código, ou seja, não precisaríamos se preocupar com isso ^^
>> >
>> > abraços
>> > Fernando.
>> >
>> > Em 23 de maio de 2010 13:35, Alex Miranda de Oliveira <
>> > alexsistemass em gmail.com> escreveu:
>> >
>> > > Ok fernando Filho mas queria fazer o meu proprio
>> > > para facilitar algumas coisas depois futuramente penso
>> > > em fazer um atualizacao automatica
>> > >
>> > > Obrigado pela dica
>> > >
>> > >
>> > >
>> > > Em 22 de maio de 2010 17:16, Fernando Filho <nanfilho em gmail.com>
>> > escreveu:
>> > >
>> > > > uso já a aluns anos e nunca tive problema o "Database Comparer" levo
>> > meu
>> > > > banco master e comparo com o do cliente e rodo as alterações.
>> > > >
>> > > > [ ]´s
>> > > > Fernando Filho
>> > > >
>> > > > Em 21 de maio de 2010 16:22, Alex Miranda de Oliveira <
>> > > > alexsistemass em gmail.com> escreveu:
>> > > >
>> > > > > Boa Tarde Pessoal da Lista
>> > > > >
>> > > > > Preciso  fazer um programa que atualize a minha base de dados
>> > > > > no firebird..
>> > > > >
>> > > > >
>> > > > > toda vez que atualizo um cliente tenho que rodar o scripts
>> > > > > manualmente ..
>> > > > >
>> > > > > Quero saber com vocês da lista como vocẽs fazem ..
>> > > > > qual seria as opcoes  para criar os campos automaticamente
>> > > > >
>> > > > >
>> > > > > Uso Delphi com Firebird
>> > > > >
>> > > > > Componente de acesso FIBPlus
>> > > > >
>> > > > >
>> > > > > Alex Miranda de Oliveira
>> > > > > ______________________________________________
>> > > > > 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://firebase.com.br/pesquisa
>> > > > >
>> > > >
>> > > >
>> > > >
>> > > > --
>> > > > Atenciosamente
>> > > > Fernando Filho
>> > > > ______________________________________________
>> > > > 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://firebase.com.br/pesquisa
>> > > >
>> > > ______________________________________________
>> > > 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://firebase.com.br/pesquisa
>> > >
>> >
>> >
>> >
>> > --
>> > Atenciosamente
>> > Fernando Filho
>> > ______________________________________________
>> > 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://firebase.com.br/pesquisa
>> >
>> ______________________________________________
>> 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://firebase.com.br/pesquisa
>>
>
>
>
> --
> Atenciosamente
> Fernando Filho
> ______________________________________________
> 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://firebase.com.br/pesquisa
> Nenhum vírus encontrado nessa mensagem recebida.
> Verificado por AVG - www.avgbrasil.com.br
> Versão: 9.0.819 / Banco de dados de vírus: 271.1.1/2893 - Data de Lançamento: 05/24/10 03:26:00
>
>
> ______________________________________________
> 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://firebase.com.br/pesquisa




Mais detalhes sobre a lista de discussão lista