Wenn sich Ihre Daten nach der Bereitstellung der Anwendung ändern, wie halten Sie dann die Datenbank auf dem neuesten Stand?
Ich meine, Sie können Tabellen hinzufügen oder entfernen, das ist eine einfache Aufgabe. Auch das Ändern einer bestehenden Tabelle kann trivial sein. Aber wenn Sie die Struktur häufig ändern, wie halten Sie das unter Kontrolle?
Früher habe ich eine Tabelle mit der aktuellen Datenbankversion in der Datenbank geführt. Dann war jedes Upgrade eine SQL-Datei, die ihre Arbeit machte - eine neue Tabelle erstellen, eine Spalte hinzufügen oder die Daten verschieben. Die Dateien wurden nach diesen Versionen benannt - wenn also mein Upgrade-Skript die Datenbankversion 10 erhielt, nahm es einfach alle Dateien von 11.sql bis N.sql und wendete jede einzelne davon an, wobei es die Datenbankversionsnummer gleichzeitig erhöhte.
Das scheint ganz gut zu funktionieren, aber ich frage mich, was ist Ihre Strategie für solche Aufgaben?
Außerdem scheint dieses System nicht perfekt zu sein, wenn ich eine Tabelle in einem "Patch" normalisiere und sie danach aus irgendwelchen Gründen wieder denormalisiere. Dann wird es zweimal gemacht.
Aber jedes Mal, wenn ich etwas ändere, ein komplettes Upgrade-Skript zu schreiben, scheint mühsam und fehleranfällig zu sein. Zumindest mehr als solche atomaren Änderungen.
Außerdem kann ich davon ausgehen, dass verschiedene Kunden zu jeder Zeit unterschiedliche Datenbankversionen verwenden, so dass ich wirklich eine Möglichkeit haben sollte, von jedem Punkt aus aufzusteigen.
0 Stimmen
Diese Frage ist sehr ähnlich: stackoverflow.com/questions/308/