2008-12-30 4 views
5

Ich bin dabei, ein Webanwendungsprojekt zu entwickeln.Bewährtes Verfahren zur Verwaltung von Änderungen des Datenmodells in einem freigegebenen System

Ich möchte etwas früh und oft für Early Adopters zum Spielen und Feedback bekommen.

Aber ich stelle mir vor, dass sich das Datenmodell mit fortschreitendem Projekt ändert und mein Verständnis des Systems verbessert wird.

Wie sollte ich das Dilemma bewältigen, das Datenmodell angemessen zu aktualisieren und Datenverlust für Erstanwender zu verhindern? Sollte ich einfach eine große Warnung mit dem Hinweis "User hüte dich" aufstellen, oder sollte ich mich bemühen, Migrationsskripts zu erstellen?

Antwort

3

Scott Ambler hat ein paar nette Sachen über agile Datenbanken geschrieben. Es gibt eine book und eine website.

5

Welche Plattform verwenden Sie? Ruby on Rails bietet Migrationsskripts als Teil des Pakets. Wenn Sie in Java-Land sind, möchten Sie vielleicht migrate4j überprüfen. Am Ende würde ich vorschlagen, beide Dinge zu tun: Warnen Sie Ihre Benutzer, dass sie Alpha-Software verwenden, und verwenden Sie Migrationsskripte mit der Absicht, ihre Daten zu bewahren, wann immer sie können (damit sie verärgert werden und das Interesse verlieren). .

2

Für meine Firma ...

Es ist eine harte und schnelle Regel, dass, wenn möglich, die Datenbank muss rückwärts mit der aktuellen Version der Software kompatibel sein. Wenn es keine Tar- und Federtaktiken gegen den Täter gibt.

In unserem Fall schreiben wir benutzerdefinierte Software-Anwendung für unsere Kunden, so haben wir einige Flexibilität, wie wir Dinge implementieren können ... aber häufiger oder nicht, der Kunde möchte ihre Änderungen mit Live-Daten sehen. Daher müssen wir in der Lage sein, die aktuelle Version der Anwendung sowie die neue Version der Anwendung zu unterstützen, die der Kunde überprüft und genehmigt.

Einige andere Dinge, die wir tun, ist investiert in Red Gate Sql Compare und Sql Daten vergleichen. Dadurch wird sichergestellt, dass Änderungen aus der Entwicklungsumgebung korrekt in die Produktionsumgebung verschoben werden.

Wir haben auch vor kurzem aufgegeben die Verwendung von gespeicherten Prozeduren, da sie eine unnötige Schicht der Abstraktion bieten, wenn es um Wartung geht ... und sie sind böse! =)

+0

"Böse"? Könnte zu stark sein. Ich kann es jedoch respektieren, basierend auf deiner eigenen hart erkämpften Erfahrung. – duffymo

Verwandte Themen