[firebase-br] Controle de versão dos objetos do Firebird

Gladiston Santana gladiston em vidy.com.br
Ter Nov 17 17:14:17 -03 2015


Eu não sei se seria possível, mas se tiver a fim de experimentar você pode
exibir as tabelas de sistema, encontrar a tabela rdb$procedures e criar uma
trigger before insert/update/delete para registrar noutra tabela ou banco o
codigo anterior de sua procedure. O mesmo se repetiria para outros objetos,
menos tabelas porque elas não tem um codigo SQL, uma trigger na tabela de
sistema que controla os campos seria individual, 1 registro=1 campo..
Nunca testei isso, mas se funcionar atente-se que essas triggers não serão
permanentes, se você restaurar o banco, suas triggers em cima dessas
tabelas de sistema serão perdidas.

Em 16 de novembro de 2015 14:45, Marcio Toloi <marcio.toloi em gmail.com>
escreveu:

> Olá pessoal.
>
> Este é meu primeiro post na lista, mas já acompanho vocês há alguns anos...
>
> Alguém da lista por um acaso conhece uma maneira (ou ferramenta) para
> controlar o histórico de alterações dos objetos do Firebird?
>
> Por exemplo: Se eu altero uma Stored Procedure no banco, o novo
> código-fonte dela (ddl) será atualizado na coluna *rdb$procedure_source* na
> tabela *rdb$procedures*. Neste caso eu conseguiria através de uma trigger
> armazenar as várias versões do código-fonte. Mas o que fazer quando
> alteramos as colunas de uma tabela? Seria possível rastrear esta alteração?
>
> Para ilustrar um pouco essa ideia: - Eu trabalho como Analista de Sistemas
> aqui na empresa há 10 anos, e grande parte das minhas atividades é fazer
> manutenções em objetos do banco. Nós aqui temos o hábito de registrar essas
> alterações em forma de documentação de tarefas, e também salvamos o novo
> código-fonte em um servidor SVN.
>
> A empresa aqui trabalha com a mesma base de dados Firebird há mais de 16
> anos. Desde então, esta base já passou pelo Interbase, depois migramos para
> o Firebird 1.5, depois para o Firebird 2.1.... e estamos prestes a migrar
> para o Firebird 2.5.
>
> Ao longo de todos estes anos, inúmeras foram as alterações em procedures,
> tables, triggers, etc (por pessoas diferentes). E seria muito interessante
> que o Firebird registrasse para cada objeto da base algo como: "creation
> date" e "last modification date", além do "Description" que já existe.
>
> Para as tabelas, seria interessante que ele registrasse quando uma "foreign
> key" foi criada ou dropada... quando que uma "primary key" foi criada...
> etc.
>
> Alguém já fez isso? Ou precisou fazer um controle parecido? :D
>



Mais detalhes sobre a lista de discussão lista