Migration thahipster herrmontag - ISSO Kommentare mergen - Kommentare retten
Im Zuge meiner Zusammenführung der beiden Domains thahipster.de und herrmontag.de ergab sich eine weitere Herausforderung, an dich ich eingangs nicht gedacht habe. Ich betrieb die Domain thahipster.de schon seit 2005 (hier der erste Beitrag), sie startete mit B2Evolution und wechselte später zu Wordpress, bis ich die Inhalte ca. 2014 zur Ghost Blogging Software migrierte. Im Zuge dessen überführte ich all die vielen Kommentare aus Wordpress (damals wurde erheblich mehr kommentiert, als heute) in ein freies System, Disqus war damals State of the Art, aber so einen Container wollte ich nicht bedienen. Kommentare sind kein Big Data, sie gehören nicht in eine Cloud, sie gehören nicht woanders hin. Sie gehören den Schreibenden und sie gehören zur Domain wo sie kommentiert wurden.
Aus diesem Grund entschied ich mich für die freie Software "ISSO - Ich schrei sonst!" (Link) - die wie Disqus aufgebaut ist, aber selbst gehostet wird. Die Kommentare werden mit Thread-ID und über den URL-Slug mit dem Beitrag verbunden und liegen fein säuberlich in einer kleinen SQLite 3 Datenbank auf dem Server herum - und nicht bei Disqus oder weiß der Geier wo.
Das klappte damals am Ende irgendwie ganz gut und meine Kommentare seit 2005 waren weiterhin verfügbar. Bis heute. Aber was jetzt? Was nun wenn ich thahipster.de beerdige und plötzlich nur noch HerrMontag.de betreibe und die alte Domain und somit die Kommentare weg fallen? Die Artikel hatte ich ja schon integriert. Durch einen simplen Test durch Umhängen der Datenbank stellte sich heraus, dass wohl doch nur der Slug, nicht aber die Domain, pro Kommentar in der Datenbank durch ISSO abgelegt werden. Eher der Thread zu einem Gesprächsverlauf unter dem Slug (/dem hinteren Teil der URL), gespeichert werden, denn die Kommentare waren unter den integrierten Artikel auf herrmontag.de von thahipster.de direkt wieder sichtbar.
Das hieß also, man müsste die beiden Datenbanken, denn ich betreibe auch für herrmontag.de eine Kommentarfunktion, weil Kommentare für mich essentieller Bestandteil der Blogkultur sind, zumindest das Angebot dazu, welche schreiben zu können, nur mit einander verschmelzen.
Gesagt - überlegt. Beide Datenbanken haben die IDs ihrer Kommentare und Threads irgendwann mal bei 1 gestartet, nämlich als sie abgelegt wurden. Diese IDs würden sich bei einer Verschmelzung also in die Quere kommen. Da die IDs sonst keine Funktion haben, kann man diese aber einfach erhöhen, dort hin, wo noch keine benutzten IDs sind. Also einfach alle plus 2000 zum Beispiel.
Das habe ich mit einem Script gemacht, zum Glück kann man eine SQLite Datenbank durch bloßes duplizieren sichern und einfach wieder herstellen. Ich habe also herum probiert und irgendwann eine Möglichkeit gefunden, die kleine an die größere Datenbank zu attachen, den Wert vorher zu erhöhen und die Beiträge dann zu importieren. Da die Slugs der URL gleich geblieben sind, gab es hier nichts weiter zu tun.
Bisschen ausführlicher vielleicht? (nach dem Klick)
Mit etwas SQLite-Magie habe ich die Datenbanken zusammengeführt:
-- IDs in der kleineren DB verschieben (Konflikte vermeiden)
UPDATE comments SET id = id + 10000;
UPDATE threads SET id = id + 5000;
-- Daten zusammenführen
INSERT OR IGNORE INTO threads SELECT * FROM source.threads;
INSERT OR IGNORE INTO comments SELECT * FROM source.comments;
Der Trick dabei:
INSERT OR IGNOREverhindert doppelte Einträge- Durch das Verschieben der IDs gibt es keine Konflikte
- Die Thread-Zuordnung bleibt erhalten, da nur die IDs angepasst werden
Das Ergebnis
Nach einem Neustart von ISSO waren plötzlich alle Kommentare aus 18 Jahren wieder da! Die historischen Diskussionen zu alten Artikeln sind jetzt wieder sichtbar, und neue Kommentare landen in derselben Datenbank.
Was ich gelernt habe
- Backups sind goldwert - ich hatte von beiden Datenbanken Sicherungen
- Einfache Lösungen sind oft die besten - keine komplexen Skripte nötig
- SQLite ist erstaunlich mächtig - für so eine Aufgabe perfekt geeignet
Die Kommentare meiner Leser sind mir wichtig - sie sind das Gedächtnis meines Blogs. Jetzt sind sie wieder vollständig, und ich kann mich auf die nächsten 20 Jahre freuen!
Und jetzt sind alle meine Kommentare, historische und überhaupt, wieder und weiterhin verfügbar (wertvoll sind sie freilich nicht, aber für mich). Ich freue mich darüber. Denn mein Weblog ist für mich ein historisches Dokument in dem ich manchmal wie in einem Tagebuch blättere. Oder fast zumindest 😄
Kommentare und Reaktionen
Reaktionen
Lade Interaktionen...