Sie finden meine Frage vielleicht Wie erstellen Sie Ihre Datenbank aus der Versionskontrolle? nützlich.
Grundsätzlich ist eine effektive Verwaltung gemeinsam genutzter Ressourcen (wie einer Datenbank) schwierig. Das ist schwierig, denn es gilt, die Bedürfnisse mehrerer Personen unter einen Hut zu bringen, darunter andere Entwickler, Tester, Projektmanager usw.
Oft ist es effektiver, einzelnen Entwicklern eine eigene Sandbox-Umgebung zur Verfügung zu stellen, in der sie Entwicklung und Unit-Tests durchführen können, ohne andere Entwickler oder Tester zu beeinträchtigen. Dies ist jedoch kein Allheilmittel, da Sie nun einen Mechanismus bereitstellen müssen, um diese mehreren separaten Umgebungen im Laufe der Zeit miteinander zu synchronisieren. Sie müssen sicherstellen, dass die Entwickler eine vernünftige Möglichkeit haben, die Änderungen der anderen zu übernehmen (sowohl Daten, Schema als auch Code). Das ist nicht unbedingt einfacher. Eine gute SCM-Praxis kann helfen, aber es erfordert immer noch ein beträchtliches Maß an Zusammenarbeit und Koordination, um dies zu bewerkstelligen. Hinzu kommt, dass die Bereitstellung einer eigenen Kopie der gesamten Umgebung für jeden Entwickler Kosten für die Speicherung und zusätzliche DBA-Ressourcen für die Verwaltung und Überwachung dieser Umgebungen verursachen kann.
Hier sind einige Ideen, die Sie berücksichtigen sollten:
- Erstellen Sie ein gemeinsames, öffentliches "Umgebungs-Whiteboard" (es könnte elektronisch sein), auf dem Entwickler leicht sehen können, welche Umgebungen verfügbar sind und wer sie verwendet.
- Bestimmen Sie eine Person oder Gruppe als Eigentümer der Datenbankressourcen. Sie sind dafür verantwortlich, den Überblick über die Umgebungen zu behalten und helfen, die widersprüchlichen Anforderungen verschiedener Gruppen (Entwickler, Tester usw.) zu lösen.
- Wenn Zeit und Budget es zulassen, sollten Sie Sandbox-Umgebungen für alle Ihre Entwickler einrichten.
- Wenn Sie dies nicht bereits tun, sollten Sie die "Spielbereiche" der Entwickler von den Integrations-, Test- und Akzeptanztestumgebungen trennen.
- Stellen Sie sicher, dass Sie kritische Datenbankobjekte versionieren - insbesondere solche, die sich häufig ändern, wie Trigger, gespeicherte Prozeduren und Ansichten. Sie wollen nicht, dass Ihre Arbeit verloren geht, wenn jemand die Änderungen eines anderen überschreibt.
1 Stimmen
Die einzige Möglichkeit, die ich je gesehen habe, ist, dass 50+ Programmierer beliebige Änderungen an der Datenbank vornehmen und dann den DB-Administrator (also mich) anmeckern, wenn etwas nicht mehr funktioniert. Ich kann nicht sagen, dass ich diesen Ansatz empfehle.
0 Stimmen
Das macht durchaus Sinn :) Für ein Team von vier Personen funktioniert das meistens gut. Wenn unser Team wächst (was sehr wahrscheinlich ist), würde ich gerne eine elegantere Lösung haben.