Mein Team evaluiert dbdeploy für die Verwaltung von Datenbankmigrationen. Nach meinem Verständnis erfordert die Verwendung von Migrationen ein gewisses Maß an Prozessdisziplin, nämlich dass für jede Änderung eine Migration geschrieben wird und dass die Migration von der lokalen zur Entwicklungsphase erfolgen muss, um die Produktion zu testen.Wie füge ich Schemaänderungen, die an einer Produktionsdatenbank vorgenommen wurden, in meinen von der Migration verwalteten Prozess ein?
Gelegentlich führt unser DBA-Produktionsteam Schemaänderungen direkt in der Produktionsumgebung durch. Wenn wir eine neue Migration schreiben, um die Änderung gegenüber unserer aktuellen Entwicklungsversion der Datenbank vorzunehmen, wird diese Migration niemals gegen ein Schema getestet, das die Änderung bereits enthält, bis die Migration für die Produktion bereitgestellt wird. Das geht mich an.
Die andere Möglichkeit besteht darin, die Änderung direkt in das Baseline-Schema zu übernehmen und dann die Datenbank in allen Umgebungen (lokal, Entwicklung, Test, Phase) neu aufzubauen. Dieser Ansatz betrifft mich, da das neue Schema dazu führen kann, dass eine oder mehrere Migrationen unterbrochen werden.
Wie gehen die Leute derzeit mit diesem Szenario um?