Ich arbeite an einer Anwendung mit ein paar anderen Leuten und wir möchten unsere MySQL-Datenbank in der Quellcodeverwaltung speichern. Meine Gedanken sind zwei haben zwei Dateien: eine wäre das create-Skript für die Tabellen usw., und die andere wäre die Inserts für unsere Beispieldaten. Ist das ein guter Ansatz? Wie können Sie diese Informationen am besten exportieren?
Auch Vorschläge für Arbeitsabläufe im Hinblick auf die Beschleunigung von Änderungen, Exporten, Aktualisierungen usw.
Das klingt nach einem guten Ansatz. Sie können verschiedene Revisionen unterscheiden, sowohl hinsichtlich der Tabellenstruktur als auch der Daten. Nett!
Der beste Weg, um die Dumps zu erstellen, ist wahrscheinlich **mysqldump**
kann einfach automatisiert werden - einmal mit --no-data
, um die create-Anweisungen zu erhalten, einmal mit --no-create-info --no-create-db
, um die Daten zu erhalten.
Ich habe schon gefragt: Wie kann ich meine MS versionieren? SQL-Datenbank in SVN?
Siehe auch: die sehr gute Artikelserie hier
Dies ist der Prozess, den ich für die Versionierung von MySQL-Datenbanken unter Subversion verwende.
Setup SVN
Erstellen Sie in SVN einen Ordner Databases
mit einem Unterordner für jede Datenbank, die Sie dem SVN hinzufügen möchten.
Datenbank db_version zu Datenbanken hinzufügen
Wir müssen jeder Datenbank eine Tabelle hinzufügen, damit wir wissen, mit welcher Version der Datenbank wir gerade arbeiten. Diese Tabelle dient auch als Protokoll, um zu verfolgen, welche Schemaänderungen an der Datenbank vorgenommen wurden.
%Vor%majorReleaseNumber - Hauptversionen sind wesentliche Änderungen an der Datenbank.
minorReleaseNumber - Nebenversionen sind Erweiterungen der Datenbank, die keine Hauptversion erfordern.
pointReleaseNumber - Eine Point-Release ist normalerweise eine einfache Fehlerbehebung.
scriptName - Der Name des SQL-Skripts, das das Schema geändert hat.
dateApplied - Wenn das Skript in dieser Datenbank ausgeführt wurde.
Erstellen von Grundlinienskripten
Ich habe mysqldump verwendet, um ein Erstellungsskript für existierende Datenbanken zu erzeugen. Achten Sie darauf, die Option --no-data einzuschließen. SVN wird verwendet, um die Skripts zu verfolgen, die Schemaänderungen an der Datenbank vornehmen und nicht als Sicherungswerkzeug für Daten einer bestimmten Instanz der Anwendung verwendet werden sollen.
%Vor%Der Name des SQL-Skripts sollte den Namen der Datenbank und die Version der Datenbank enthalten, auf die das Skript angewendet wird.
db_1.1.0.0.sql
Stellen Sie am Ende des Skripts sicher, dass Sie eine Insert-Anweisung für die Tabelle db_version hinzufügen.
Ändern des Datenbankschemas
Wenn Sie eine Major-, Minor- oder Point-Release-Änderung an der Datenbank vornehmen, sollte das Change-Skript getestet und dann in den Datenbankordner in SVN hochgeladen werden. Es empfiehlt sich, die Datenbank vor dem Anwenden eines Änderungsskripts zu sichern. Am Ende des Änderungsskripts sollte eine Einfügeanweisung für die Tabelle db_version stehen.
Ich arbeite in einer Umgebung mit Microsoft Source Safe und Oracle / Sql Server.
Wir fanden, dass das Halten jedes Pakets / jeder Prozedur, das Erstellen eines Tabellenskripts usw. in einer separaten Textdatei der beste Weg war, dies zu tun. Das bedeutet, dass Entwickler bei der Wartung von Paketen einfach das Paket 1 auschecken können, das sie benötigen. Sobald die Änderungen vorgenommen und getestet wurden, können sie eingecheckt werden.
Sie haben definitiv die richtige Idee. Hier sind ein paar gute Artikel zum Thema:
Tags und Links mysql database svn version-control