Datenbank Versionierung

Ludwigmller

SQL-Guru
Beiträge
171
Hi,
Welche Möglichkeiten nutzt ihr um eine Datenbank zu versionieren?
Mir geht es dabei vorwiegend um Änderungen am Datenschema, also Tabellendefinitionen, Views, Funktionen,...
Derzeit erstelle ich mit pg_dump ein Backup nur mit den Daten und eines nur mit dem schema. Beide Dateien werden mit GIT versioniert. Das funktioniert aber nur eingeschränkt gut, manchmal werden Änderungen erkannt, die gar nicht gemacht wurden, nur weil die Backupdatei in einer anderen Reihenfolge erstellt wurde.

Gibt es bessere Lösungen?
 
Werbung:
Solche Tools verstehen ja nicht den Inhalt. Sie wissen nicht, das die Quelle automatisiert erstellt wurde. Mglw. ist die geänderte Reihenfolge ja eine Folge einer Editierung wegen logischen Zusammenhangs..
Bevor Du eine Änderung commitest, kannst Du ja mal per 'diff' schauen, was überhaupt die Änderungen sind und es ggf. korrigieren.
 
Werbung:
Für die Verwaltung der Schema Migration ("ALTER" Statements) kann ich Liquibase auch empfehlen. Setzen wir seit Jahren recht problemlos ein. Meiner Meinung nach der größte Vorteil gegenüber Tools wie z.B. Flyway, ist die Tatsache, dass man auch Skripte schreiben kann die Datenbank unabhängig sind. Also das gleiche Liquibase Skript ("ChangeLog") wird gegen eine Postgres, Oracle oder SQL Server Datenbank laufen gelassen.

Aber auch ohne die Anforderung das Skript für mehrere Datenbanken verwenden zu können, ist Liquibase ein gutes Tool :) Braucht natürlich, wie jedes Tool, ein wenig Einarbeitung.

Wichtig ist vor allem (Selbst)Disziplin: wenn man mit so einem Tool anfängt, dann muss man wirklich konsequent sein und alle Änderungen darüber machen. Nervt manchmal, aber vor allem in großen Projekte zahlt sich das auf lange Sicht aus.
 
Zurück
Oben