Erstellen Sie Skripte unter Versionskontrolle und kontinuierlicher Integration, um sie zu überprüfen
Ein Ansatz, der für mich funktioniert hat, war, dass jeder Entwickler mit seinem eigenen Schema arbeitet, mit dem er machen kann, was er will. Ihr Schema war zerstörbar und mit Testdaten gefüllt, die aus einem versionskontrollierten Satz von Skripten stammen, zu denen alle Entwickler beigetragen haben.
Bei der nächtlichen kontinuierlichen Integrationserstellung wurde die neueste Version aller Skripts verwendet und versucht, eine zusammenhängende Testdatenbank daraus zu erstellen. Die Anwendung wurde dann einer Reihe von Integrations- und Funktionstests unterzogen, um sicherzustellen, dass das aktuelle Schema mit dem aktuellen Release-Kandidaten übereinstimmt.
Bevor wir diesen Weg eingeschlagen haben, gab es ein ziemlich solides Datenbankdesign und ein DBA hat immer ein Auge auf die Dinge geworfen, um zu verhindern, dass Entwickler durch Denormalisierung und andere Schrecken verrückt werden.
Die Versionskontrolle hat hier immens geholfen, da Änderungen an den Skripten sofort erkennbar waren. Wir haben auch eine Datenbanktabelle verwendet VERSION
, um den Gesamtstatus der Datenbank zu ermitteln. Dies war eine einfache Ganzzahlsequenz, die keiner bestimmten Anwendung zugeordnet war.
Insgesamt hat es gut funktioniert und bedeutet, dass Entwickler keine Angst mehr davor haben, die Persistenzstufen zu ändern, da sie ihre eigenen Schemata immer zurücksetzen konnten, ohne andere zu beeinträchtigen.