Phinx – the Migration Library You Never Knew You Needed

Phinx – PHP-Datenbank-Migration für alle
Kommentare

Irgendwann kommt beim Erstellen einer Applikation immer der Punkt, an dem man die Struktur einer Datenbank mit dem Team teilen muss. Wie bewerkstelligt man das am besten? Mit Tabellenstrukturen in SQL? Ziemlich mühsam. Viel einfacher sind da Datenbank-Migrationen. Und ganz besonders leicht soll das mit Phinx, dem Framework-unabhängigen Package zum Erstellen und Ausführen von Datenbank-Migrationen, funktionieren.

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

Aufmacherbild: Panoramic view of the full profile of the Great Sphinx with the pyramid in the background in Giza von Shutterstock / Urheberrecht: Volodymyr Martyniuk

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -