Eine Datenbank mit nur ein paar SQL-Dateien managen zu wollen, dazu oft ganz ohne Versionskontrolle, ist eigentlich ein Ding der Unmöglichkeit. Denn je weiter eine Applikation wächst, desto umfangreicher wird auch die Datenbank. Nicht nur die Anzahl der Installationen einer Datenbank nimmt zu, sondern auch die Anzahl der SQL-Dateien, da sich die Codebasis mit ändert und dies festgehalten werden muss. Wie managet man das Ganze also? Ganz einfach, per Datenbank-Migrationen.
Phinx – plattformunabhängige Datenbank-Migrationen
Um inkrementelle Änderungen in einer Tabelle unter Verwendung von Code zu managen, bieten sich Migrationen besonders an. Dafür gibt es bereits eine ganze Menge an nützlichen Tools, die aber alle ein kleines Manko haben: Sie sind an das jeweilige Framework gebunden. Phinx hingegen ist vollkommen unabhängig von Plattformen und mit MySQL, PostgreSQL, SQLite und SQL Server kompatibel.
Zudem bietet Phinx ein mächtiges API, mit dem Migrationen mittels PHP-Code erstellt werden können. So können Entwickler die Migrationen versionieren und dabei das bevorzugte SCM-System verwenden. Auf diese Weise sind Phinx-Migrationen zwischen unterschiedlichen Datenbank-Systemen übertragbar.
Phinx keeps track of which migrations have been run so you can worry less about the state of your database and instead focus on building better software.
Allerdings ist es auch möglich, die Migrationen in SQL zu schreiben. Dann geht zwar die Übertragbarkeit verloren, aber umfangreiche Queries können so händisch gecodet werden. Da Phinx von der Kommandozeile aus aufgerufen wird, funktioniert es ohne Probleme mit bereits vorhandenen Deploy-, Build- und CI-Tools.
Zum Einstieg stehen eine umfangreiche Dokumentation sowie ein Getting-Started-Beitrag des Phinx-Entwicklers zur Verfügung. Auch einen Video-Test zur Arbeit mit Phinx gibt es bereits:
Name | Phinx |
---|---|
Entwickler | Rob Morgan |
Projektwebsite | https://phinx.org/ |
GitHub | https://github.com/robmorgan/phinx |
Diversity matters – Onlinemarketing 2020
mit Astrid Kramer (Astrid Kramer Consulting)
Das Recht auf Privatsphäre – eine Chance für UX
mit Lutz Schmitt (Lutz Schmitt Design & Consulting)
The Revenge of Structured Data
mit Stephan Cifka (Performics Germany GmbH)
Aufmacherbild: Panoramic view of the full profile of the Great Sphinx with the pyramid in the background in Giza von Shutterstock / Urheberrecht: Volodymyr Martyniuk