Suche Versioning-Programm für DB-Schemata

Suche Versioning-Programm für DB-Schemata

am 13.09.2006 16:58:30 von Oliver Treck

Hallo.

Ich bin auf der Suche nach eine Programm, mit dem man die Weiterentwicklung
eines Datenbank-Schemas verwalten kann. (Ähnlich wie CVS oder Subversion)
Wichtige Funktionen wären dabei für mich eine Verwaltung der versch.
Versionen sowie die Möglichkeit up und downgrade-Skripte zwischen den
Versionen zu erstellen.

Das Nonplusultra wäre es, wenn die Software nicht nur neue Spalten einer
Tabelle erfasst, sondern auch Umbenennungen einer Spalte und Typ-Änderungen.

Beispiel:

Die Spalte "preis" vom Typ "float(9,2)" wird in "price" vom Typ
(decimal(9,2)) geädert, dass das Programm dann nicht die alte Spalte "preis"
löscht und eine neue "price" anlegt (Datenverlust), sondern das Programm das
autmatisch mitloggt oder das ggf. nachträglich definiert werden kann.

Für mich sind in dem Fall nur die Tabellen-Strukturen wichtig. Auf den
Datenbestand der unterschiedlichen Versionen muss nicht unbedingt
eingegangen werden.

Nun zur Zentralen Frage: Kennt jemand so ein Programm oder kann mir jemad
sagen welches sich für diese Zwecke am besten eignet.
Ich habe bereits ein paar Ansätze gesehen, jedoch besitzen diese meist nicht
die Möglichkeit die Umbenennung zu berücksichtigen.

Über sachliche Hinweise würde ich mich sehr freuen.

Vielen Dank,
Oliver Treck

Re: Suche Versioning-Programm für DB-Schemata

am 13.09.2006 17:13:41 von Kai Ruhnau

Oliver Treck wrote:
> Ich bin auf der Suche nach eine Programm, mit dem man die Weiterentwicklung
> eines Datenbank-Schemas verwalten kann. (Ähnlich wie CVS oder Subversion)
> Wichtige Funktionen wären dabei für mich eine Verwaltung der versch.
> Versionen sowie die Möglichkeit up und downgrade-Skripte zwischen den
> Versionen zu erstellen.
>
> Das Nonplusultra wäre es, wenn die Software nicht nur neue Spalten einer
> Tabelle erfasst, sondern auch Umbenennungen einer Spalte und Typ-Änderungen.
>
> Beispiel:
>
> Die Spalte "preis" vom Typ "float(9,2)" wird in "price" vom Typ
> (decimal(9,2)) geädert, dass das Programm dann nicht die alte Spalte "preis"
> löscht und eine neue "price" anlegt (Datenverlust), sondern das Programm das
> autmatisch mitloggt oder das ggf. nachträglich definiert werden kann.
>
> Für mich sind in dem Fall nur die Tabellen-Strukturen wichtig. Auf den
> Datenbestand der unterschiedlichen Versionen muss nicht unbedingt
> eingegangen werden.
>
> Nun zur Zentralen Frage: Kennt jemand so ein Programm oder kann mir jemad
> sagen welches sich für diese Zwecke am besten eignet.
> Ich habe bereits ein paar Ansätze gesehen, jedoch besitzen diese meist nicht
> die Möglichkeit die Umbenennung zu berücksichtigen.
>
> Über sachliche Hinweise würde ich mich sehr freuen.

Bis auf den Downgrade-Teil habe ich es so gelöst, dass ich kleine
SQL-Skripte mit DDLs (und in Ausnahmefällen auch DMLs) schreibe, die
dann per SVN auf die Rechner verteilt und per make in das Schema
integriert werden. Für ein Release kannst du die SQL-Skripte dann ja
anhand ihres Erstellungsdatums in ein Gesamtskript zusammenkopieren.
Früher [tm] hab ich die DDLs aus PHPMyAdmin kopiert, inzwischen schreib
ich die lieber selber und habe mir für wiederkehrende Aufgaben (CREATE
TABLE mit allen Standardverwaltungsinformationen zum Beispiel) ein
Template erstellt.

Automatisierender Software traue ich nicht wirklich über den Weg, zumal
über verschiedene MySQL-Versionen hinweg teilweise recht deutliche
Erweiterungen (und auch Änderungen) in MySQLs SQL implementiert wurden
(zuletzt VIEWs und Stored Procedures). Ein guter Hinweis darauf sind die
vielen versionsbedingten Anweisungen in einem mysqldump. Dass solche
Tools da zügig mitziehen, bezweifel ich erstmal.

Ich empfehle den Weg, die DDLs selber zu schreiben und zu verteilen.

HTH und Grüße
Kai

Re: Suche Versioning-Programm für DB-Schemata

am 13.09.2006 17:25:19 von Oliver Treck

"Kai Ruhnau" schrieb im Newsbeitrag
news:ee9774$co4$00$1@news.t-online.com...
> Bis auf den Downgrade-Teil habe ich es so gelöst, dass ich kleine
> SQL-Skripte mit DDLs (und in Ausnahmefällen auch DMLs) schreibe, die dann
> per SVN auf die Rechner verteilt und per make in das Schema integriert
> werden. Für ein Release kannst du die SQL-Skripte dann ja anhand ihres
> Erstellungsdatums in ein Gesamtskript zusammenkopieren.
> Früher [tm] hab ich die DDLs aus PHPMyAdmin kopiert, inzwischen schreib
> ich die lieber selber und habe mir für wiederkehrende Aufgaben (CREATE
> TABLE mit allen Standardverwaltungsinformationen zum Beispiel) ein
> Template erstellt.

Habe ich auch schon drüber nachgedacht, aber erstmal ist ma natürlich faul
und will sich die Arbeit sparen.

> Automatisierender Software traue ich nicht wirklich über den Weg, zumal
> über verschiedene MySQL-Versionen hinweg teilweise recht deutliche
> Erweiterungen (und auch Änderungen) in MySQLs SQL implementiert wurden
> (zuletzt VIEWs und Stored Procedures). Ein guter Hinweis darauf sind die
> vielen versionsbedingten Anweisungen in einem mysqldump. Dass solche Tools
> da zügig mitziehen, bezweifel ich erstmal.

Ich dachte vielleicht gibt es in dem Bereich ja schon einer Eier legende
Wollmilchsau ;)

Trotzdem danke für die schnelle Antwort.

Lg,

Oliver Treck