Wie arbeiten Sie auf Oracle-Pakete in einer kollaborativen, versionskontrollierten Umgebung?

StackOverflow https://stackoverflow.com/questions/706026

  •  22-08-2019
  •  | 
  •  

Frage

Ich arbeite in einer Multi-Entwicklungsumgebung in Oracle mit einem großen Paket. Wir haben eine DEV => TST => PRD Förderung Muster. Derzeit werden alle Paket Bearbeitungen direkt in TOAD und dann kompiliert in das DEV-Paket gemacht.

Wir laufen in zwei Probleme:

  1. Concurrent Änderungen müssen mit unterschiedlichen Zeitplänen gefördert werden. Zum Beispiel macht Entwickler A eine Änderung, die morgen, während Entwickler B gleichzeitig gefördert werden muß, wird auf einer Änderung arbeiten, die nicht für weitere zwei Wochen gefördert werden. Wenn es Förderung Zeit kommt, finden wir uns manuell Sachen kommentieren aus, die noch nicht gefördert wird und uncommenting es dann nachher ... igitt !!!

  2. Wenn zwei Entwickler Änderungen exakt zur selben Zeit zu machen und einer von ihnen kompiliert, wischt sie die anderen Entwickler der Änderungen aus. Es gibt keine schöne merge; stattdessen die neueste Kompilierung gewinnt.

Welche Strategien würden Sie empfehlen, dies zu umgehen? Wir verwenden TFS für unsere Quelle-Kontrolle, aber noch nicht genutzt dies mit unseren Oracle-Paketen.

PS Ich habe dieses Posting gesehen, aber nicht vollständig meine Frage beantworten.

War es hilfreich?

Lösung

Wir verwenden Oracle Developer Tools für Visual Studio.NET ... Stecker rechts in die TFS

Andere Tipps

Der Schlüssel ist, eine Praxis nur aus dem Quellcode-Verwaltungssystem bereitstellen Codes zu übernehmen. Ich bin nicht vertraut mit TSF, aber es muss die Konzepte des Zweiges, Tags, etc. Die Frage nach der Umsetzung, was dann zu implementieren fällt aus dem Build und Release-Tagging im Quellkontrollsystem.

Weitere Tipps (für Oracle):

  • es funktioniert am besten, wenn Sie das Paket spec und Körper in verschiedene Dateien aufgeteilt, die ein konsistentes Dateimuster für jeden (zum Beispiel „.pks“ für Paket spec und „.pkb“ für Verpackungskörper) zu verwenden. Wenn Sie einen automatisierten Build-Prozess verwenden, die Muster-Datei verarbeiten kann, dann können Sie alle die Spezifikationen bauen und dann die Leichen. Dies minimiert auch Objekt Ungültigmachungen, wenn Sie nur einen Gehäusekörper bereitstellen.

  • die Zeit setzen in einen automatisierten Build-Prozess zu konfigurieren, die von einem Release angetrieben wird oder Zustand des Quellkontrollsystem aufzubauen. Wenn Sie auch nur eine moderate Anzahl von db-Code haben Objekte es zahlt der Lage sein, den Code in ein Referenzsystem aufzubauen und es zu Ihrem qa oder Produktionssystem zu vergleichen.

Siehe meine Antwort über Werkzeuge mit gespeicherten arbeiten Verfahren in Oracle, in einem Team (was ich gerade retagged haben).

Fazit: nicht ändert Verfahren direkt mit TOAD. Speichern Sie die Quelle als Dateien, die Sie in der Quellcodeverwaltung gespeichert werden, ändern Sie dann ausführen.

Plus, ich würde empfehlen, dass jeder Entwickler auf seiner eigenen Kopie der Datenbank arbeitet (verwenden Oracle Express, die frei ist). Sie können das tun, wenn Sie alle Skripte speichern Sie die Datenbank in Quellcodeverwaltung zu erstellen. Mehr Einblick hier werden kann.

Um 2 Entwickler zu vermeiden auf dem gleichen Paket zur gleichen Zeit arbeiten:

1) Verwenden Sie Ihr Versionskontrollsystem als Quelle des Paketcodes. Um auf einem Paket funktioniert, muss der Entwickler zuerst das Paket aus der Versionskontrolle überprüfen; niemand sonst kann das Paket Check-out bis dieser Entwickler es zurück in überprüft.

2) Arbeiten Sie nicht direkt auf dem Paketcode in Toad oder einer anderen IDE. Sie haben keine Ahnung , ob der Code, den Sie dort arbeiten korrekt ist oder von einem oder mehreren anderen Entwicklern modifiziert. Die Arbeiten an dem Code in dem Skript, das Sie überprüft haben, aus der Versionskontrolle aus, und führen Sie, dass in die Datenbank das Paket zu kompilieren. Meine Präferenz ist eine nette Texteditor (TextPad) und SQL Plus zu verwenden, aber Sie können dies auch in Toad tun.

3) Wenn Sie fertig sind, überprüfen Sie das Skript zurück in die Versionskontrolle. nicht Kopieren und Einfügen von Code aus der Datenbank in das Skript (siehe Punkt 2 wieder).

Der Nachteil (wenn es eines) dieser kontrollierten Ansatzes besteht darin, dass nur ein Entwickler zu einem Zeitpunkt auf einem Paket arbeiten kann. Dies sollte kein großes Problem sein, solange:

  • Sie halten Pakete auf eine vernünftige Größe (in Bezug auf was sie tun, nicht, wie viele Zeilen Code oder die Anzahl der Verfahren in ihnen). Habe ich nicht ein großes Paket, das den gesamten Code enthält.
  • Entwickler werden ermutigt, nur Code zu überprüfen, wenn Sie bereit sind, daran zu arbeiten, und es in zu prüfen, sobald sie fertig sind und ihre Änderungen zu testen.

wir tun es mit einem Dev-Datenbank für jeden Strom, und Etiketten für die verschiedenen Ströme.

Unsere Oracle Lizenzierung gibt uns unbegrenzte dev / Testinstanzen, aber wir sind ein ISV, können Sie eine andere Lizenzoption haben

Sie können die Oracle-Entwickler-Tools für VS verwenden, oder Sie können SQL-Entwickler verwenden. SQL Entwickler integriert mit Subversion und CVS und Sie können es kostenlos herunterladen. Siehe hier: http://www.oracle.com/technology /products/database/sql_developer/files/what_is_sqldev.html

Wir Toad verwenden für Oracle mit dem TFS MSSCCI Anbieter gegen TFS 2008. Wir verwenden eine Custom Tool die Datenbank zieht checkins aus der Quellcodeverwaltung und verpackt sie für die Freigabe.

Mein Wissen Oracle Developer Tools für Visual Studio.Net hat keine wirkliche Integration der Quellcodeverwaltung mit TFS oder auf andere Weise.

Sie sollten erwägen Toad Erweiterungen für Visual Studio obwohl es nicht billig ist, vielleicht $ 4k denke ich.

Eine weitere Option ist die Oracle Change Management Pack- aber glauben, es erfordert die Enterprise Edition von Oracle, die viel teurer ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top