Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Ferramentas para trabalhar com stored procedures no Oracle, em equipe?


Não tenho certeza se o pôster original ainda está monitorando isso, mas vou fazer a pergunta de qualquer maneira.

A postagem original solicitava ser capaz de:

Para "bloquear" automaticamente o procedimento atual com o qual você está trabalhando, outra pessoa da equipe pode fazer alterações nele até que você termine.

Talvez o problema aqui seja mais um paradigma de desenvolvimento do que a incapacidade de um produto "bloquear" o proc armazenado. Sempre que ouço "Quero bloquear isso para que ninguém mais o altere", imediatamente tenho a sensação de que as pessoas estão compartilhando um esquema e todos estão desenvolvendo no mesmo espaço.

Se for esse o caso, por que não deixar que todos tenham seu próprio esquema com uma cópia do modelo de dados? Quero dizer sério pessoal, não "custa" nada criar outro esquema. Dessa forma, cada desenvolvedor pode fazer alterações até ficar azul sem afetar mais ninguém.

Outro truque que usei no passado (em equipes pequenas) quando não era viável deixar cada desenvolvedor ter sua própria cópia dos dados por causa do tamanho, era ter um esquema mestre com todas as tabelas e códigos nele, com sinônimos públicos apontando para tudo. Então, se o desenvolvedor quiser trabalhar em um proc armazenado, ele simplesmente o cria em seu esquema. Dessa forma, a resolução de nomes do Oracle encontra esse primeiro em vez da cópia no esquema mestre, permitindo que eles testem seu código sem afetar mais ninguém. Isso tem suas desvantagens, mas este foi um caso muito específico em que poderíamos conviver com eles. Eu NUNCA implementaria algo assim em produção, obviamente.

Quanto ao segundo requisito:

Para enviar automaticamente as alterações feitas no procedimento armazenado, em um banco de dados Oracle, para um repositório Subversion, CVS,...

Eu ficaria surpreso ao encontrar ferramentas inteligentes o suficiente para fazer isso (talvez uma oportunidade :)). Ele teria que se conectar ao seu banco de dados, consultar o dicionário de dados (USER_SOURCE) e extrair o texto associado. Uma tarefa difícil para sistemas de controle de origem onde são quase universalmente baseados em arquivos.