Wenn sich Ihre Daten nach der Bereitstellung der Anwendung ändern, wie halten Sie die Datenbank auf dem neuesten Stand?in einer Webanwendung, wie halten Sie die Datenbankstruktur auf dem neuesten Stand?
Ich meine, Sie können Tabelle hinzufügen oder entfernen, das ist eine einfache Aufgabe. Das Ändern einer vorhandenen Tabelle kann ebenfalls trivial sein. Aber wenn Sie die Struktur oft ändern, wie behalten Sie das unter Kontrolle?
Ich habe eine Tabelle mit einer aktuellen Datenbankversion in der Datenbank behalten. Dann war jede Aktualisierung eine SQL-Datei, die ihre Arbeit verrichtet hat - 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 hatte, wurden nur alle Dateien von 11.sql nach N.sql übernommen und jeder von ihnen gleichzeitig die Versionsnummer der Datenbank inkrementiert.
Das scheint zu funktionieren, aber ich frage mich - was ist Ihre Strategie für solche Aufgaben?
Auch dieses System scheint nicht perfekt, wenn ich eine Tabelle in einem "Patch" normalisieren und danach aus irgendwelchen Gründen wieder denormalisieren. Dann ist es zweimal getan.
Aber jedes Mal, wenn ich etwas ändere, schreibe ich ein komplettes Upgrade-Skript, das schmerzhaft und fehleranfällig ist. Zumindest mehr als solche atomaren Veränderungen.
Auch kann ich erwarten, dass verschiedene Kunden verschiedene Datenbankversionen zu jeder Zeit ausgeführt haben, so dass ich wirklich einen Weg haben sollte, von jedem Punkt zu gehen.
Sehr ähnliche Frage hier: http://stackoverflow.com/questions/308/is-there-a -version-control-system-for-database-structure-änderungen –