icon
Programmer's Diary

Weekly Coding • 2026-08-11 • Von unlesbaren SQL-Dumps zu übersichtlichen YAML-Dateien: Wie ich mein Datenbank-Tracking für die persönliche Website optimiert habe.

This text was automatically translated to German language by LLM tool.

Letzte Woche hatte ich Urlaub von meiner bezahlten Arbeit, weshalb ich mehr Zeit für das Programmieren in meiner Freizeit hatte als sonst: 20 Stunden.

Persönliche Website 🌐

🚀 Ich habe ein neues großes Feature implementiert: die Möglichkeit zu sehen, was sich in der Datenbank geändert hat. Das wollte ich schon lange und habe es endlich geschafft… Aber um welchen Preis? Ursprünglich dachte ich daran, einen SQL-Dump für jede Tabelle in Git zu speichern. Dieser Ansatz erwies sich jedoch als unpraktisch, da lange SQL-Strings schwer lesbar waren. Schließlich habe ich mich dazu entschieden, die Datensätze aus der Datenbank in YAML-Dateien zu speichern. Jede Tabelle erhält einen eigenen Ordner. Da YAML Text mit Zeilenumbrüchen unterstützt, lassen sich meine Posts in diesem Format gut lesen.

🔎 Um die Änderungshistorie im Browser anzuzeigen, habe ich den Container GitWeb hinzugefügt. Hierfür musste ich das Docker-Image für die ARM-Architektur neu bauen, da GitWeb sonst unerträglich langsam lief und das Laden einer Seite eine ganze Minute dauerte. Das Repository läuft auf meinem Orange Pi. Commits werden automatisch nach Zeitplan durchgeführt: jeden Sonntag um Mitternacht.

⏳ Die Aufgabe hat viel Zeit in Anspruch genommen, da ich viele Mühe in die ursprüngliche SQL-Variante investiert hatte, mich später aber dazu entschied, zu YAML zu wechseln und von der SQL-Version abzuweichen. Jetzt kann ich jedoch sehen, was sich Woche für Woche in meiner Datenbank geändert hat.

🦫 Während der Arbeit an dieser Aufgabe hatte ich das Gefühl, ein kleines ORM-Framework in meinem Projekt zu erfinden. Wäre es vielleicht nützlich, ein fertiges ORM-Framework zu verwenden? Ich habe gehört, dass es GORM für Go gibt. Darüber muss ich nachdenken. Im Moment besteht jedoch keine Notwendigkeit, auf ein ORM-Framework umzusteigen, da ich momentan bereits alle benötigten Funktionen habe.