Was ist der beste Weg, um eine MySQL-Datenbank in der Quellcodeverwaltung zu speichern?

8

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.

    
Marplesoft 14.01.2010, 19:33
quelle

5 Antworten

3

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.

    
Pekka 웃 14.01.2010, 19:36
quelle
3

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.

    
Mark 14.01.2010 20:03
quelle
2

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.

    
Nanook 14.01.2010 19:40
quelle
1

Sie haben definitiv die richtige Idee. Hier sind ein paar gute Artikel zum Thema:

Michael Hackner 14.01.2010 19:41
quelle