Seite 1 von 1

Datenbanken unter Versionskontrolle

Verfasst: 17. August 2009 09:49
von thereapman
Hi Leute!

Ich hab jetzt meinen Code fein säuberlich in Git-Repos aufgeteilt.
Allerdings brauchen einige Komponenten eine Postgre-Datenbank die gleichzeitig mitentwickelt wird (tabellen etc.).

Jetzt suche ich ne möglichkeit diese DB-informationen auch irgendwie unter versionskontrolle zustellen und auch immer mitzuhaben, wenn ich meine Repos zb auf meinen Laptop auschecke und dann keinen Netzwerkzugriff auf die Masterdatenbank mehr habe um weiter zu arbeiten.

Jemand ne elegante Idee dazu?

Verfasst: 17. August 2009 10:04
von Mani99
Kann git einen sql dump speichern? Ich hab mich leider noch nicht mit git beschäftigt, aber wenn git auch mit textdateien umgehen kann, dann einfach sql dump erzeugen und im repository speichern!

Verfasst: 17. August 2009 10:42
von androphinx
mach dir ein skript welches du immer vor und nach dem co ausführst. vor dem co machst du dir mittels mysqldump eine sicherung und nach dem co spielst du es ebenfalls mit mysqldump wieder ein.

@Mani99: warum sollte git nicht mit textdateien zurecht kommen??? textdateien sind die einfachste aufgabe für versionskontrollsysteme.....

EDIT: Alternativ kannst du auch einfach einen MySQL-Server im Netz nutzen (bei sourceforge.net, etc.) mit dem du immer synchronisierst.

Verfasst: 17. August 2009 10:49
von franzf
Mach die Versionskontrolle doch in der DB! Mit Textfiles wäre mir zu unsicher...
Eine eigene Tabelle "Info" oder wie auch immer, die die aktuelle Version hält.
Im Programm selber gibt es Funktionen, um die DB von einer Version in die andere zu überführen. Beim Programmstart frägst du die Version (per QSqlQuery) ab, im Code steht hartcodiert die aktuelle Version, die der Code verlangt.

Falls DB-Version > Code-Version -> Exception.
Falls DB-Version < Code-Version -> stück für Stück die Migrations-Funktionen aufrufen.

Denn wenn du nur das SCHEME speicherst und lädst sind flux beim User die Daten weg :P
Und auch mit nem DUMP muss die DB-Struktur angepasst werden.