Database Change Management für Continuous Delivery Diana Lander und Andreas Falk NovaTec Consulting GmbH Die Vortragenden Andreas Falk Senior Consultant NovaTec Consulting GmbH Diana Lander Consultant NovaTec Consulting GmbH Termindruck bewältigen!? O Continuous Integration und Continuous Delivery! Agenda O Flyway (inkl. Demo) O Problem und Lösung (inkl. Demo) O Fazit und Ausblick Flyway O Tool zur automatisierten DB-Migration O Findet Dateien mit speziellem Namen, die den Migrationscode enthalten (SQL, Java) O Ordnet sie aufsteigend nach dem Namen O Identifiziert, welche Dateien noch nicht ausgeführt wurden O Führt diese Dateien automatisiert aus http://www.flywaydb.org Flyway Standardumfang • Integration: API, Plugins O Migration • Metadatentabelle Update von Schema oder Daten einer DB O Artefakt SQL-Skript oder Java-Klasse O Branch Entwicklungspfad • Checksummenvalidierung • Unterstützung eines linearen Branches Demo Continuous Delivery mit Flyway Ein Branch inklusive DB-Migration Agenda O Flyway (inkl. Demo) O Problem und Lösung (inkl. Demo) O Fazit und Ausblick Das Problem O Feature Branch Entwicklung aktueller Features O Bugfix Branch Branch zur Behebung von Fehlern eines Releases Szenarien für Branching O Support eines Produkts in einer Version X und Behebung von Fehlern O Übertragung von Bugfixes von einem BugfixBranch auf den Feature-Branch O Kunde möchte auch neue Features erhalten Die Lösung: Erweiterung von Flyway O Neue Metadatentabelle für den Branch, auf dem man sich befindet O Spezielle Artefakte zum Wechseln der Branches / Ordner O Durchlaufen mehrerer Ordner nacheinander, um nach Migrationsartefakten zu suchen Ausgangslage der Demo Demo Zusammenfassung Demo (1) Zusammenfassung Demo (2) O Startpunkt der Suche von Flyway ist der Ordner R01_01. O Das Java Artefakt „V01_01_06__Pre_Update_To_2_0.java“ wird zur Ausführung identifiziert und ausgeführt. O Das SQL-Artefakt „V02_00_06__Merge_To_Release_2_0.sql“ wird zur Ausführung identifiziert und ausgeführt. O Dieses Artefakt hat den Eintrag in der Tabelle „release_verion_table“ auf „main“ gesetzt. Zusammenfassung Demo (3) Zusammenfassung Demo (4) O Durch Umschalten des Ordners in der Tabelle „release_version_table“ wird in den Ordnern „R01_01“ und „main“ nach Artefakten gesucht. O Aufgrund der Benennung der Artefakte und deren Sortierung werden insgesamt 4 SQL und Java Artefakte ausgeführt. O In der Konsolenausgabe sind mehrere Iterationen für eine Migration zu sehen. Zusammenfassung Branching In A Nutshell (1) O Migration wird bei jedem Kunden O O O O O automatisch vor Ort ausgeführt Kein teures Migrationsteam Geringere Fehleranfälligkeit Anpassungsaufwand hat Entwicklung erleichtert Entwickler schreiben Skripte selbst Continuous Delivery auf DB angekommen! In A Nutshell (2) O Ausblick O Kontakt zur Flyway-Truppe O Evtl. Standardfeature von Flyway O Veröffentlichung eines Artikels O Technischer Artikel auf NovaTec Blog http://blog.novatec-gmbh.de/ O Spielwiese / Erweiterung inkl. Artefakte auf http://www.novatec-gmbh.de/ Andreas Falk: [email protected] Diana Lander: [email protected]