3 Stimmen

Migrieren einer Oracle-Datenbank mit einer daran angeschlossenen C#-Anwendung: Wie verwaltet man die Datenbankmigration?

Ich habe eine C#-Anwendung, die mit einer Oracle-Datenbank arbeitet und bereits ausgeliefert wurde. Jetzt ist es an der Zeit, eine neue Version herauszubringen. Das C#-Objektmodell wurde überarbeitet und hatte Auswirkungen auf die Tabellenstruktur.

Wenn ich die neue Version ausliefere, muss ich mich um die vorhandenen Daten kümmern. Tabellen einfach zu löschen und neu zu erstellen, würde die Kunden nicht glücklich machen.

Um diesem Problem zu begegnen, habe ich SQL-Skripte zusammengestellt, die die zuvor freigegebene Datenbankstruktur in die neue Datenbankstruktur umwandeln. Im Zuge dessen werden auch die Daten migriert. Die SQL-Skripte werden wie C#-Quellcode in einem Repository abgelegt. Das Parcheando der Datenbank wird in regelmäßigen Abständen mit Hilfe von CruiseControl.NET getestet. NUnit-Tests werden gegen die gepatchte Datenbank ausgeführt, um Unstimmigkeiten zwischen Datenbanktabellen und C#-Objektmodell aufzudecken.

Das ganze Verfahren funktioniert zwar, aber ich habe das Gefühl, dass es besser gemacht werden könnte. Ich sehe die Datenbankmigration als sehr kritisch an. Eine ausgelieferte Anwendung, die mit einer falsch gepatchten Datenbank nicht funktioniert, hat keinen Wert. Der Verlust von Daten ist inakzeptabel. Diese Horrorszenarien könnten mich dazu verleiten, die Datenbank überhaupt nicht zu ändern. Daher ist es für mich sehr wichtig, dass ich den von mir verwendeten Tools und Verfahren volles Vertrauen entgegenbringe.

Letzte Woche stolperte ich über LiquiBase und ich fragte mich - und jetzt in SO:

Welche Tools oder Praktiken können helfen, die Datenbankmigration mit weniger Risiken und mehr Vertrauen durchzuführen? Gibt es irgendwelche guten Bücher oder Internetquellen?

Ich bin besonders an spezifischen Lösungen für C# und Oracle interessiert, die in das oben beschriebene Entwicklungsverfahren passen könnten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X