Skip to content

Datenmigration in PHP: Praktische Patterns & Tools

Ein PHP-Elefant, Symbole für Quelltext und Datenbanken und ein PHP-Array mit den Werten 'a', 'b' und 'c'

Ende Juni habe ich online am Laravel Meetup Germany teilgenommen. Es gab zwei Talks, der erste stellte Inertia vor. Inertia ist ein Framework, das es vereinfacht, serverseitige (Laravel-)Apps mit clientseitigen SPAs zu verbinden.

Den zweiten Vortrag hielt Phillip Kalusek über "Data Migrations - Strategies, Tips & Tricks" - nicht zu verwechseln mit Datenbank-Schema-Migrationen - in Laravel (Video auf YouTube. Phillip gibt eine Menge sehr sinnvoller Praxis-Tipps zum Aufsetzen von Import-Workflows und beleuchtet Vor- und Nachteile verschiedener Ansätze. Dieser Vortrag hat mich letztendlich dazu inspiriert, diesen Artikel zu schreiben.

"Datenmigration in PHP: Praktische Patterns & Tools" vollständig lesen

Wochenrückblick KW 27 / 2024

Es wird immer später, aber ich habe es noch geschafft, den Wochenrückblick zu schreiben. Es war eine sehr volle Woche, in der ich viel erlebt habe. Hier sind die Highlights:

🎉 Feiern

Geburtstag

Am Samstag waren wir auf einer sehr schönen Geburtstagsfeier mit vielen alten Freunden, die ich zum Teil seit Jahren nicht gesehen hatte. Die Party-Location auf dem Mainzer Berg war auch super mit ausgebauter Scheune, einem geschützten Innenhof und viel Natur, die vor allem von den Kindern ausgiebig erforscht wurde.

🚴 Fahrrad

Nibelungen Gravel Ride

Aus diesem Grund habe ich schweren Herzens nicht am diesjährigen Nibelungen Gravel Ride teilgenommen. Ich habe aber mittlerweile schon viele tolle Fotos von der Veranstaltung gesehen und werde die Strecke vielleicht noch solo an einem anderen Wochenende in Angriff nehmen. teilgenommen.

Tour de France

Andere betreiben das Radfahren beruflich, zum Teil bei der Tour de France. Am Sonntag stand dort die Etappe mit 14 Gravel-Passagen an, die neben sehr coolen Bildern auch einiges an Spannung lieferte. Wenn er nicht stürzt oder krank wird, dürfte Tadej Pogacar die Rundfahrt gewinnen, so dominant war wieder seine Leistung.

🖥️ Computer

Zed

Zed ist ein Open Source-Texteditor slash IDE, der jetzt auch auf Linux-Systemen läuft und GitHub Copilot-Unterstützung direkt eingebaut hat. Soweit ich sehe, lässt sich dieses Feature auch nicht einfach deaktivieren; aber ich denke, die AI-Unterstützung in IDEs geht so schnell auch nicht weg. Ich habe mir Zed mal installiert und werde ihn in den nächsten Tagen testen. Dieser Post ist auch in Zed entstanden.

Wochenrückblick KW 26 / 2024

What a week, huh? Captain, it's Wednesday!

🖥️ Computer

Terminal Trove

Auch wenn ich nicht hauptsächlich Server administriere, so bin ich doch viel auf der Linux command line unterwegs. Dementsprechend freue ich mich immer wieder über neue Tools fürs Terminal. Mein Eindruck ist, dass es auch die zunehmende Popularität von Rust ist, die dafür sorgt, dass auch heute noch neue, nützliche Kommandozeilen-Programme erstellt werden. Seiten wie Terminal Trove stellen diese dann vor. Ich habe zuletzt gefunden und ausprobiert:

  • harlequin, eine SQL IDE fürs Terminal, die auch gut mit DuckDB und SQLite funktioniert; macht das Arbeiten mit DuckDB je nach Einsatzzweck noch komfortabler.
  • termscp, ein Dateitransfer-Tool fürs Terminal, ein bisschen ähnlich dem Midnight Commander; spricht auch mit WebDAV, S3, SMB und mehr.
  • Pillager, ein in Go geschriebenes Tool, um Verzeichnisse rekursiv nach (vergessenen) Passwörtern und Keys zu durchsuchen.

🏡 Haus & Garten

Ich habe ein bisschen was mit Holz gemacht, Terrassendielen mit der Japansäge gekürzt und grau lasiert, die Kreissäge konnte im Regal bleiben. Zuvor habe ich mich mithilfe einiger Video-Tutorials weiter in FreeCAD reingefuchst und das Modell im "Parts"-Arbeitsbereich erstellt. Wenn man mal weiß, wie es geht, geht es ganz gut. Blöd nur, wenn der Baumarkt das entsprechende Holz dann doch nicht vorrätig hat. Aber die Maße im Kopf schnell neu zu kalkulieren hat glücklicherweise gut funktioniert 😅

📚 Literatur

Ich habe "Babel" von Rebecca F. Kuang in der deutschen Übersetzung von Heide Franck und Alexandra Jordan gelesen und fand es sehr gut. Die Wikipedia hat den deutlich besseren Originaltitel "Babel: Or the Necessity of Violence: An Arcane History of the Oxford Translators' Revolution" und eine gute Zusammenfassung des Inhalts:

Babel is set in an alternative-reality 1830s England in which Britain's global economic and colonial supremacy are fueled by the use of magical silver bars. Their power comes from capturing what is "lost in translation" between words in different languages that have similar, but not identical, meanings. Silver bars inscribed with such 'match-pairs' can increase industrial and agricultural production, improve the accuracy of bullets, heal injuries, and more. To harness this power, Oxford University created the Royal Institute of Translation, nicknamed "Babel", where scholars work to find match-pairs. The plot is focused on four new students at the institute, their growing awareness that their academic efforts maintain Britain's imperialist supremacy, their debate over how to prevent the Opium War, and the use of violence.

Es geht um Imperialismus, Kapitalismus, Kolonialismus und Rassismus, aber das wird erst langsam im Lauf der Handlung klar und immer deutlicher. Diese spielt zwar vor zwei Jahrhunderten, ist aber in vielen Teilen immer noch aktuell. Und auch der (satirische) Blick auf den akademischen Betrieb ist lesenswert. Insgesamt eine Empfehlung, wenn euch die Themenfelder ansprechen und euch speculative fiction gefällt.

🎲 Board Games

Wir haben MicroMacro: Crime City ausprobiert, eine Art Detektivspiel in Wimmelbild-Optik, und es hat uns viel Spaß gemacht. Die etwas heftigeren Fälle haben wir aber aus Rücksicht auf das Alter der Teilnehmenden weggelassen - die holen wir irgendwann nach. Ein Fall lässt sich auch online lösen, die Spielmechanik lässt sich dort ganz gut kennenlernen.

Wochenrückblick KW 25 / 2024

Der Wochenrückblick kommt spät, aber er kommt, wenn auch nur in aller Kürze. Dabei war die Woche gar nicht langweilig, aber vieles passt mir hier gerade nicht rein.

🖥️ Computer

PHP User Group Rheinhessen

Der zweite Talk für unser 74. Meetup steht fest: Bastian Allgeier wird das Open Source CMS Kirby vorstellen. Ich habe in letzter Zeit häufiger Seiten mit Kirby erstellt und finde es aus Entwickler-Sicht sehr angenehm, damit zu arbeiten - auch wenn es ein paar Konventionen gibt, mit denen ich noch nicht ganz warm werde.

🧑‍🍳 Kochen & Backen

Ich lese gerade "Das Brot" von Chad Robertson, das für manche eine Art Kult-Buch in Sachen Brotbacken ist. Ich finde es inhaltlich zu dünn, aber habe das Sauerteigbrot-Rezept im gusseisernen Topf nachgebacken. Es ist gut geworden, obwohl ich mich nicht besonders genau ans Rezept gehalten habe.

🚴 Sport

Am Samstagabend haben wir die zweite Olympia-Qualifikation im Gerätturnen der Frauen in Rüsselsheim besucht. Fast die gesamte deutsche Turn-Elite war vertreten, und am Ende hat Helen Kevric verdientermaßen den dritten Startplatz für die Olympischen Spiele in Paris erkämpft. Sie hat seit gestern übrigens endlich einen Wikipedia-Eintrag, ansonsten hätte ich den jetzt angelegt.

Wochenrückblick KW 24 / 2024

In dieser Woche habe ich eine weitere Runde der Erde um die Sonne¹ abgeschlossen. Abends gab es daher lecker Essen im Living & Dining, am Wochenende einen Besuch bei den Eltern. Entsprechend kurz bleibt der Rückblick.

🖥️ Computer

Upscayle

Für einen anderen, runden Geburtstag, zu dem ich in ein paar Wochen eingeladen bin, habe ich knietief in meinen Backups nach alten Fotos gesucht und trotz mangelnder Organisation einige interessante Bilder gefunden. Darunter auch Scans von Papierabzügen und Dias(!), fotografiert mit sehr einfachem Equipment. Um die zumindest teilweise aufzubessern, habe ich das Upscaling mit Upscayle ausprobiert und muss sagen: Das Ergebnis überzeugt. Nicht bei allen Vorlagen, aber es lohnt sich, das Tool mit kleineren Fotos zu testen.

🚴 Fahrrad

Es gibt leider nicht viel zu berichten. Ich habe neue Bremsbeläge aufs Gravelbike getan, diesmal die Tektro P20.11, in der Hoffnung, dass die etwas länger halten. Geht ja doch viel hoch und runter hier im Taunus. Eingebremst habe ich sie schon, eine Testfahrt steht allerdings noch aus.

Dafür habe ich am Sonntag wieder etwas Dotwatching betrieben, auf der Map und auch aus dem Dachfenster heraus. Das Taunus Bikepacking ist nämlich gestartet (wenn ich groß bin, möchte ich daran auch mal teilnehmen!), und ich kenne zunehmenend Menschen, die da mitfahren. Entweder persönlich oder zumindest dem Namen nach oder von ihren Social Media-Kanälen. Letztes Jahr bei hochsommerlichen Temperaturen stand ich da im Wald und habe einige Teilnehmende mit Wasser und Snacks unterstützen können. Diesmal war ich nicht so gut vorbereitet, habe aber die Punkte auf der Karte und ein paar Fahrende aus der Ferne verfolgen können.

🎶 Musik

Letzte Woche habe ich mich über das Verschwinden der Spotify-Playlisten beschwert, andere (Radiosender) hatten sich wohl über deren Existenz beschwert, weil sie ja nicht offiziell sind. Die gute Nachricht ist: Die Playlisten sind wieder da, haben jetzt halt nur andere, etwas kryptische Namen 🙌

In dem Zuge habe ich mich für ein paar Stunden hingesetzt und mein eigenes Tool programmiert, das gespielte Songs eines Radiosenders einliest, den Titel bei Spotify sucht, und dann in eine Playlist einfügt. Das war gar nicht so schwierig und funktioniert bereits als proof of concept. Eine große Hilfe waren die Bibliotheken symfony/browser-kit einer- und jwilsson/spotify-web-api-php andererseits. Eigentlich müsste ich das jetzt gar nicht mehr weiterentwickeln, aber ich habe noch ein paar andere Ideen dafür. Mal sehen, ob und was daraus wird.

¹ Galliano sind wieder da