Version 1.0

Lecture: Datenbank-Release-Management mit PostgreSQL und Ruby-on-Rails

Ein GIT für die Datenbank – geht das?

Viele mit Ruby-on-Rails und PostgreSQL entwickelte Webanwendungen wie Content-Management-Systeme oder Shop-Systeme benötigen oft komplexe Datenbankmodelle mit umfangreichen Abhängigkeiten. Gleichzeitig ist häufig ein Release-Management der Datenbank erwünscht, um Inhalte und Shop-Funktionen im Voraus zu erstellen und einen Test- und Abnahmeprozess zu ermöglichen. Es wird eine Lösung vorgestellt, die der Basisfunktionalität eines Source-Control-Systems wie GIT ähnelt. Releases können – ohne die Live-Prozesse zu stören – mit dem Produktionscode als Preview angeschaut und überprüft werden. Es sind auch mehrere, gleichzeitig existierende Releases möglich, die zusammengeführt werden können.

Viele mit Ruby-on-Rails und PostgreSQL entwickelte Webanwendungen wie Content-Management-Systeme oder Shop-Systeme benötigen oft komplexe Datenbankmodelle mit umfangreichen Abhängigkeiten. Gleichzeitig ist häufig ein Release-Management der Datenbank erwünscht, um Inhalte und Shop-Funktionen im Voraus zu erstellen und einen Test- und Abnahmeprozess zu ermöglichen. Gängige Lösungen versehen hierfür einzelne Datenbankmodelle z. B. mit Attributen wie Gültigkeitszeiträume oder Release-Status, oder sie verwenden komplett getrennte Systeme für Preview- und Live-Umgebungen. Die Handhabung solcher Attribute kann bei umfangreichen Datenbanken sehr komplex werden. Getrennte Systeme erhöhen den Ressourcenbedarf einer Anwendung stark und Previews werden dabei nicht auf dem eigentlichen Live-System geprüft.

Unsere Lösung ähnelt der Basisfunktionalität eines Source-Control-Systems wie GIT. So wie GIT-Benutzer mit Commits arbeiten können, kann man in unserem System mit Releases – ein Satz von Änderungen, Einfügungen und Löschungen in der Datenbank – arbeiten. Erweiterungen der Datenbank müssen das Release-Management nicht speziell berücksichtigen, da es als eigenständiges Modul implementiert ist.

Releases können – ohne die Live-Prozesse zu stören – mit dem Produktionscode als Preview angeschaut und geprüft werden. Vollständige Bestellprozesse können damit z. B. in einem Shop auf dem Live-System getestet werden. Es sind auch mehrere, gleichzeitig existierende Releases möglich, die zusammengeführt werden können. Manuelle Konfliktbehebung ist dann nur bei gleichzeitiger Änderung von Daten eines Objekts notwendig.

Info

Day: 2014-08-24
Start time: 14:45
Duration: 00:40
Room: RedFrogConf (C118)
Track: RedFrogConf (Ruby)
Language: de

Links:

Feedback

Click here to let us know how you liked this event.

Concurrent Events