Dieser Vortrag ist ein Erfahrungsbericht über den Lernprozess und die Probleme beim Erstellen einer Datenbank Pipeline. Ein knappes Jahr ist es her, dass ich als Datenbankentwickler zum ersten Mal den Entwicklungsprozess in der Gitlab-Pipeline unterstützen wollte.
Typische Aufgaben/Fragestellungen sind:

  • Die Entwicklerin möchte eine Sandbox Umgebung erstellen, wo er ungestört ein Feature entwickeln kann und nichts kaputt macht.
  • Der Entwickler möchte durch automatisierte Tests sicher sein, dass er keine ungewollten Nebeneffekte im Code eingebaut hat (Regressionstests).
  • Die Datenbank Skripte sollen so erstellte werden, dass sie sowohl Deltas deploy-en können, als auch das leere Schema/ die leere Datenbank "from scratch" aufbauen können.  

Im Vortrag gehe ich auf diese Punkte ein und beschreibe, wie wir aus einer Mischung aus Shell Skripten, dem Einsatz des modernisierten Oracle Kommandozeilen-Clients "sqlcl" und dessen Liquibase und Loader Integration und utPLSQL ein paar Jobs für die.gitlab-ci.yml in Gitlab geschrieben haben.
Spannender wird dann der zweite Teil, worin ich auf die Probleme und Besonderheiten aufmerksam machen möchte. Was haben wir nach einem Jahr mit diesen Jobs an Problemen identifiziert und wie würde ich es heute vielleicht ein bisschen runder machen? In diesem Zusammenhang will ich dann auch nochmal ein bisschen Bezug zur Theorie von CI/CD nehmen und warum nicht alle Philosophien dieser Welt in die heile Welt des Datenbank-Entwicklers passen.