Oracle
 sql >> Database >  >> RDS >> Oracle

Strumenti per lavorare con le stored procedure in Oracle, in team?

Non sono sicuro che il poster originale lo stia ancora monitorando, ma farò comunque la domanda.

Il post originale richiedeva di poter:

Per "bloccare" automaticamente la procedura corrente con cui stai lavorando, altri membri del team possono apportarvi modifiche fino al termine.

Forse il problema qui è uno del paradigma di sviluppo più che l'incapacità di un prodotto di "bloccare" il processo memorizzato. Ogni volta che sento "Voglio bloccarlo in modo che nessun altro lo cambi", ho immediatamente la sensazione che le persone stiano condividendo uno schema e che tutti si stiano sviluppando nello stesso spazio.

Se questo è il caso, perché non lasciare che tutti abbiano il proprio schema con una copia del modello di dati? Intendo seriamente gente, non "costa" nulla per creare un altro schema. In questo modo, ogni sviluppatore può apportare modifiche fino a quando non diventa blu in faccia senza influenzare nessun altro.

Un altro trucco che ho usato in passato (su piccoli team) quando non era possibile consentire a ogni sviluppatore di avere la propria copia dei dati a causa delle dimensioni, era avere uno schema master con tutte le tabelle e il codice al suo interno, con sinonimi pubblici che indicano tutto. Quindi, se lo sviluppatore vuole lavorare su un processo memorizzato, lo crea semplicemente nel suo schema. In questo modo la risoluzione dei nomi Oracle trova quella prima invece della copia nello schema master, consentendo loro di testare il proprio codice senza influire su nessun altro. Questo ha i suoi svantaggi, ma questo era un caso molto specifico in cui potevamo conviverci. Ovviamente non implementerei MAI qualcosa di simile in produzione.

Per quanto riguarda il secondo requisito:

Per inviare automaticamente le modifiche apportate nella procedura memorizzata, in un database Oracle, a un repository Subversion, CVS,...

Sarei sorpreso di trovare strumenti là fuori abbastanza intelligenti per farlo (forse un'opportunità :). Dovrebbe connettersi al tuo db, interrogare il dizionario dei dati (USER_SOURCE) ed estrarre il testo associato. Un compito arduo per i sistemi di controllo del codice sorgente in cui sono quasi universalmente basati su file.