Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jrace1

Controle de versão, tem como?

Recommended Posts

Ola amigos, gostaria de saber se tem como fazer controle de versão com por exemplo o subversion em recursos de banco de dados como pl, triggers,...Valeu mesmo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim controle de versão?

 

Se tu entrar no Oracle e fizer um SELECT simples como abaixo:

 

SQL> select * from v$version;BANNER----------------------------------------------------------------Oracle Database 10g Express Edition Release 10.2.0.1.0 - ProductPL/SQL Release 10.2.0.1.0 - ProductionCORE	10.2.0.1.0	  ProductionTNS for 32-bit Windows: Version 10.2.0.1.0 - ProductionNLSRTL Version 10.2.0.1.0 - Production

Terá as principais informações sobre versões de recursos instalados no seu banco de dados. O Inventário do oracle é uma boa solução também para saber o que está instalado ou não.

 

Abraços, B)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que o jrace1 quer saber se existe algo que controle versões de objetos de banco do usuário, tipo triggers, sp´s etc.

Eu não conheço, aqui na empresa a gente guarda os scripts das versões anteriores num diretório da rede, mas taí gostaria de saber se existe alguma solução para isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se for para nível de objetos do usuário, como TABELAS, ÍNDICES, PROCEDURES e etc. Poderá utilizar o utilitário EXP do oracle, como se fosse um backup lógico. Exemplo: 23 de Setembro ========== Banco de dados - XYZ | Usuário : rodrigo | Versão 1.0 Comando: exp system file=xyz_rodrigo_v1.dmp log=xyz_rodrigo_v1.log owner=rodrigo 23 de Novembro =========== Banco de dados - XYZ | Usuário : rodrigo | Versão 2.0 Comando: exp system file=xyz_rodrigo_v2.dmp log=xyz_rodrigo_v2.log owner=rodrigo 23 de Dezembro =========== Banco de dados - XYZ | Usuário : rodrigo | Versão 3.0 Comando: exp system file=xyz_rodrigo_v3.dmp log=xyz_rodrigo_v3.log owner=rodrigo ---------------------------------------------------------------------------------------------------------------- Será sempre gerado um arquivo com extensão (DMP) para cada versão, caso precise voltar alguma versão, você poderá voltar para o próprio usuário, exemplo: imp system file=xyz_rodrigo_v1.dmp log=imp_xyz_rodrigo_v1.log fromuser=RODRIGO touser=RODRIGO Ou talvez criar outro usuário para realizar comparações entre as versões: SQL > create user RODRIGO_V1 identified by imasters; Created user. SQL > create user RODRIGO_V2 identified by imasters; Created user. imp system file=xyz_rodrigo_v1.dmp log=imp_xyz_rodrigo_v1.log fromuser=RODRIGO touser=RODRIGO_v1 imp system file=xyz_rodrigo_v2.dmp log=imp_xyz_rodrigo_v1.log fromuser=RODRIGO touser=RODRIGO_v2 E depois realizar uma comparação de objetos: SQL > select a.owner, a.object_type, count(a.object_type) 2 from dba_objects a 3 where a.owner in ('RODRIGO','RODRIGO_V1','RODRIGO_V2') 4 group by a.owner, a.object_type; PRONTO! Abraços, B)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pô Rodrigo , acho mais simples gerar um script e salvar como texto , é mais fácil de restaurar e consultar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende do tamanho e suas reais necessidades!

 

Se quizer realizar comparação entre PROCEDURES, TRIGGERS, VIEWS e etc.. TXT pode ser um meio.

 

Mas, para TABELAS, com volume grande de registro pode ser perda de tempo, pois no banco de dados, lhe possibilita realizar SELECTS que podem fazer comparações mais "extremas" a nível de registro ou modelagem.

 

Fora que fica mais organizado, por trabalhar com o dicionário do Oracle e lhe permite realizar diversas tarefas que um TXT não lhe permitiria.

 

Abraços, http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na realidade só faço um histórico das versões anteriores dos objetos (procedures,functions,triggers).

Mas sinto falta de um dicionário para isto , a Oracle já podia ter pensado em algo.

Forte Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O versionamento seria sobre alterações em código, como é feito atualmente com o subversion e CVS para desenvolvimento de software, tipo, se tiver uma função x que sofreu manutenção de 5 usuários na semana, o controle de versão me daria quem alterou, que dia/hora e qual foi a alteração realizada, acredito que com o subversion há como fazer esse tipo de coisa, porém, gostaria de saber se alguém ja faz...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na realidade só faço um histórico das versões anteriores dos objetos (procedures,functions,triggers).Mas sinto falta de um dicionário para isto , a Oracle já podia ter pensado em algo.Forte Abraço.

Pois é, acontece que estou em um projeto onde há compartilhamento de pl´s com outros 2 projetos, ou seja, existem 3 equipes mexendo no mesmo banco que tem em média tabelas de 4.000.000 de registros, assim, devido a uma pequena alteração que foi feita por um analista uma PL que rodava em 5 horas passou a rodar em 36 horas. Minha ideia é fazer o controle de versão pelo Subversion, assim, poderiamos sem susto identificar rapidamente quem alterou e o que, para com isso, efetuar as devidas correções de forma rápida e segura...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.