617 Stimmen

Verwenden Sie die Versionskontrolle für Ihre Datenbankelemente?

Ich habe das Gefühl, dass mein Geschäft eine Lücke hat, weil wir keinen soliden Prozess für die Versionierung unserer Datenbankschemaänderungen haben. Wir machen viele Backups, so dass wir mehr oder weniger abgesichert sind, aber es ist eine schlechte Praxis, sich auf diese Weise auf die letzte Verteidigungslinie zu verlassen.

Überraschenderweise scheint dies ein roter Faden zu sein. Viele Geschäfte, mit denen ich gesprochen habe, ignorieren dieses Problem, weil sich ihre Datenbanken nicht oft ändern und sie im Grunde nur versuchen, peinlich genau zu sein.

Aber ich weiß, wie die Geschichte ausgeht. Es ist nur eine Frage der Zeit, bis sich die Dinge einfach falsch anordnen und etwas verloren geht.

Gibt es hierfür bewährte Verfahren? Welche Strategien haben sich für Sie bewährt?

4voto

Dan Punkte 58216

Normalerweise erstelle ich ein SQL-Skript für jede Änderung, die ich vornehme, und ein weiteres, um diese Änderungen rückgängig zu machen, und halte diese Skripte unter Versionskontrolle.

Dann haben wir die Möglichkeit, bei Bedarf eine neue, aktuelle Datenbank zu erstellen, und können problemlos zwischen verschiedenen Revisionen wechseln. Jedes Mal, wenn wir eine neue Version erstellen, fügen wir die Skripte zusammen (das erfordert ein wenig manuelle Arbeit, ist aber nur selten wirklich notwendig). hart ), so dass wir auch eine Reihe von Skripten haben, die zwischen den Versionen konvertieren können.

Ja, bevor Sie es sagen, dies ist sehr ähnlich zu dem, was Rails und andere tun, aber es scheint ziemlich gut zu funktionieren, so habe ich keine Probleme zugeben, dass ich schamlos die Idee geklaut :)

4voto

itsmatt Punkte 30839

Ich habe alles, was notwendig ist, um meine DB aus dem Bare Metal wiederherzustellen, abzüglich der Daten selbst. Ich bin mir sicher, dass es viele Möglichkeiten gibt, aber alle meine Skripte und dergleichen sind in Subversion gespeichert und wir können die DB-Struktur und dergleichen wiederherstellen, indem wir all das aus Subversion herausziehen und ein Installationsprogramm ausführen.

3voto

Wes P Punkte 9362

In unserem Unternehmen verwenden wir Skripte für Datenbankänderungen. Wenn ein Skript ausgeführt wird, wird sein Name in der Datenbank gespeichert und kann nicht mehr ausgeführt werden, es sei denn, die Zeile wird entfernt. Skripte werden auf der Grundlage von Datum, Uhrzeit und Codeverzweigung benannt, so dass eine kontrollierte Ausführung möglich ist.

Bevor die Skripte in der Live-Umgebung ausgeführt werden, werden zahlreiche Tests durchgeführt, so dass "Fehler" im Allgemeinen nur bei Entwicklungsdatenbanken auftreten.

3voto

Tom Anderson Punkte 10636

RedGate ist großartig, wir erstellen neue Snapshots, wenn Datenbankänderungen vorgenommen werden (eine winzige Binärdatei) und behalten diese Datei in den Projekten als Ressource. Wann immer wir die Datenbank aktualisieren müssen, verwenden wir das Toolkit von RedGate, um die Datenbank zu aktualisieren, und können auch neue Datenbanken aus leeren Datenbanken erstellen.

RedGate stellt auch Daten-Snapshots her. Ich habe zwar nicht persönlich mit ihnen gearbeitet, aber sie sind genauso stabil.

3voto

Robert Paulson Punkte 16995

FYI Dies wurde auch vor ein paar Tagen von Dana angesprochen ... Gespeicherte Prozeduren/DB-Schema in der Versionskontrolle

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