Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Tools zum Arbeiten mit gespeicherten Prozeduren in Oracle im Team?

Ich bin mir nicht sicher, ob der ursprüngliche Poster dies immer noch überwacht, aber ich werde die Frage trotzdem stellen.

Der ursprüngliche Post verlangte Folgendes:

Um das aktuelle Verfahren, mit dem Sie arbeiten, automatisch zu "sperren", kann niemand anderes im Team Änderungen daran vornehmen, bis Sie fertig sind.

Vielleicht ist das Problem hier eher ein Entwicklungsparadigma als die Unfähigkeit eines Produkts, die gespeicherte Prozedur zu "sperren". Immer wenn ich höre "Ich möchte das sperren, damit es niemand anders ändert", habe ich sofort das Gefühl, dass die Leute ein Schema teilen und alle im selben Raum entwickeln.

Wenn dies der Fall ist, warum nicht einfach jedem sein eigenes Schema mit einer Kopie des Datenmodells überlassen? Ich meine ernsthaft Leute, es "kostet" nichts, ein anderes Schema zu erstellen. Auf diese Weise kann jeder Entwickler Änderungen vornehmen, bis er blau im Gesicht ist, ohne andere zu beeinträchtigen.

Ein weiterer Trick, den ich in der Vergangenheit (in kleinen Teams) verwendet habe, als es aufgrund der Größe nicht machbar war, jedem Entwickler eine eigene Kopie der Daten zu geben, war, ein Master-Schema mit allen Tabellen und Code darin zu haben, mit öffentlichen Synonymen, die auf alles hinweisen. Wenn der Entwickler dann an einer gespeicherten Prozedur arbeiten möchte, erstellt er sie einfach in seiner Schema. Auf diese Weise findet die Oracle-Namensauflösung diese zuerst anstelle der Kopie im Masterschema, sodass sie ihren Code testen können, ohne andere zu beeinträchtigen. Dies hat zwar seine Nachteile, aber dies war ein sehr spezieller Fall, in dem wir damit leben konnten. Ich würde so etwas natürlich NIEMALS in der Produktion implementieren.

Zur zweiten Anforderung:

Automatisches Senden der Änderungen, die Sie in der gespeicherten Prozedur in einer Oracle-Datenbank an ein Subversion-, CVS-, ...-Repository vornehmen

Ich wäre überrascht, Tools zu finden, die schlau genug sind, um dies zu tun (vielleicht eine Gelegenheit :). Es müsste sich mit Ihrer Datenbank verbinden, das Datenwörterbuch (USER_SOURCE) abfragen und den zugehörigen Text herausziehen. Eine große Herausforderung für Versionskontrollsysteme, die fast überall dateibasiert sind.