Frage

Ich habe viel Erfahrung mit SVN in meinen Entwicklungsprojekten und genauso wenig Erfahrung mit relationalen Datenbanken. Ich kenne die grundlegenden Konzepte wie Tabellen und SQL -Aussagen, aber ich bin weit davon entfernt, ein Experte zu sein.

Was ich gerne wissen möchte, ist, ob es generische Versionstypsysteme wie SVN gibt, aber die mit einer Datenbank und nicht mit Dateien funktionieren. Ich möchte die gleichen Funktionen, die Sie mit SVN erhalten, wie die Möglichkeit, Zweige zu erstellen, Tags zu erstellen und Zweige zusammenzuführen. Anstelle einer Revisionsnummer, die einer Version eines Datei -Repositorys zugeordnet ist, ist eine Version der Datenbank zugeordnet.

Sind ihre generischen Lösungen verfügbar, die diese Art von Funktionalität unabhängig vom tatsächlichen Datenbankschema hinzufügen können? Ich würde mich für Lösungen interessieren, die mit MySQL oder MS SQL Server funktionieren.

Ich sollte auch klarstellen, dass ich versuche, die Daten nicht das Schema zu steuern. Ich würde erwarten, dass das Schema konstant bleibt. Es scheint also wirklich, als würde ich eine Möglichkeit haben, ein Protokoll aller Anforderungen zu erstellen, die die Datenbank zwischen jeder Version der Daten gesendet und gelöscht haben. Auf diese Weise könnte jede Version neu erstellt werden, indem alle SQL -Anweisungen auf die gewünschte Version gespeichert wurden.

War es hilfreich?

Lösung

Sie können alle Ihre DDL, gespeicherten Prozeduren und dergleichen in reguläre Textdateien einstellen.

Dann können Sie einfach SVN für die Datenbankversioning verwenden.

Andere Tipps

Ich habe noch nie eine Lösung gefunden, die sowohl funktioniert als auch Subversion, aber hier sind einige Dinge, die ich getan habe, die geholfen haben:

  1. Erstellen Sie Skripte, die das Schema erstellen und alle anfänglichen Daten füllen. Erstellen Sie dann ein Update -Skript für jede Änderung danach. Es ist ein ziemlich manueller Prozess, aber es funktioniert. Es gibt zusätzliche Dinge, die helfen, die aktuelle Versionsnummer in einer Tabelle im DB zu speichern und sicherzustellen, dass die Skripte sind idempotent.

  2. Speichern Sie die vollständige Entwicklung in Subversion. Dies funktioniert normalerweise nicht so gut für mich, wenn viele Daten vorhanden sind oder häufig geändert wird. Aber in einigen Projekten könnte es funktionieren.

Ich behalte und verwalte Create -Skripte in meinem Versionskontrollsystem.

Es gibt zwei Dinge, an die ich denken kann:

  • http://www.liquibase.org/ - Bietet eine Möglichkeit, Datenbankänderungen im Allgemeinen zu verwalten. Erstellt Dateien, die sich in die Quellensteuerung einsetzen, und hilft, Änderungen in verschiedenen Entwicklungsdatenbanken usw. zu verwalten.
  • http://www.viget.com/extend/backup-your-database-in-git/ - Dies beschreibt eine Strategie zum Sichern einer Datenbank in die Quellvertretung, aber die gleiche Strategie kann nur für das Schema angewendet werden. In diesem Schema würde sich die Datenbank in einem separaten Bereich von Ihrem Hauptcode befinden. (Dies kann auch mit anderen Quellungssteuerungssystemen verwendet werden.)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top