- Johannes Schmitz
- Dienstag, 13. Dez 2022
- 15:00 - 15:45
- Track 7
- Session
Kann Continous Integration und Continous Deployment auch für Datenbankschemata erreicht werden? Liquibase bietet die Basis für einen Lösungsansatz. Oracle hat SQL*Plus, Postgres hat pgAdmin. Neue SaaS-Datenbanken wie etwa Cloud Spanner und BigQuery von Google bringen mit gcloud und bq ebenfalls eigene Kommandozeilentools zur Datenbankentwicklung mit. Ein Problem bleibt bei allen Datenbanken bestehen: Es gibt keine "Built-In-Solution" für die Versionierung des Datenbankmodells! DDL-Statements können zwar in Software-Versionierungstools festgehalten werden, die Datenbank wird trotzdem nie wissen in welchem Versionszustand sie sich befindet und ein Entwickler oder Administrator im Zweifel ebenfalls nicht. Hinzu kommt, dass das manuelle Ausführen von DDL-Statements per Kommandozeilentool im Zweifel anfällig für "Human Errors" ist. An dieser Stelle kommt das Tool Liquibase ins Spiel. Mit Liquibase lassen sich DDL-Statements innerhalb der Datenbank selbst versionieren. Liquibase unterstützt dabei eine Vielzahl von Datenbanken, da die Anbindung auf JDBC basiert. Auch Datenbanken, die nicht offiziell unterstützt werden, können häufig im Default oder per spezieller Extension genutzt werden wie beispielsweise im Fall von BigQuery. In der Praxis lässt sich Liquibase z. B. in eine Art "Utility"-Docker-Image verpacken, um im Anschluss in GitLab oder GitHub die Datenbank-Entwicklung per CI/CD zu ermöglichen. Dadurch kann per einfachem Pull-Request die Entwicklung von Datenbankmodellen vorangetrieben werden. Abgesichert durch einen Genehmigungsprozess und idempotent in der Ausführung durch die Versionierung. Einen Schritt weitergedacht wird Liquibase genutzt, um im Wesentlichen die Möglichkeit zu schaffen, DDL-Statements als Infrastructure as Code zu betrachten. Der Vortrag zielt darauf ab, die Funktionalität von Liquibase vorzustellen und insbesondere die praktische Anwendung in der CI/CD zu demonstrieren.