Migration von Kommentaren

Bei der thematischen Aufteilung meiner alten Website stand ich vor dem Problem, wie ich alte Kommentare mit auf die neuen Domains nehme. Das Vorgehen ist bei jedem CMS identisch, welches einen MySQL-Server (MariaDB) oder etwas vergleichbares benutzt.

Folgende Fragestellungen lese ich immer wieder im Netz, aber es gibt da selten eine Antwort darauf:

  • Wie importiere ich Kommentare, wenn sich die Struktur der Website (und damit die Artikel-IDs geändert) haben?
  • Wie importiere ich überhaupt Kommentare von einer Kommentar-Komponente zu einer anderen?‘
  • Wie importiere ich Kommentare oder Gästebucheinträge von WordPress zu Joomla oder umgekehrt?

Vielleicht liest es sich erst umständlich, aber die Migration ist recht simpel und auch flott erledigt. Die Anleitung ist narrensicher, wenn Ihr Euch an alles haltet, passiert auch nichts mit Eurer Datenbank. Sicher könnte man etwas scripten oder alles eleganter mit SQL-Befehlen erledigen, aber wie gesagt: es soll einfach und narrensicher auch für Anfänger sein. Trotzdem muss das jetzt sein:

ACHTUNG:
Ich hafte nicht für Schäden, die Ihr beim Befolgen dieser Anleitung anrichtet. Irrtümer sind ausdrücklich vorbehalten.  Wenn Ihr Euch die Website zerstört, Euch die Datenbank oder der Server explodiert, ihr alle Daten verliert: Ich bin nicht schuld! Ich sage nicht: „Macht es genau so!“, ich sage nur: „Ich habe es so gemacht“. Jeder muss selber wissen, was er da tut. Und immer daran denken: „Kein Backup – kein Mitleid“.

Ich gehe davon aus, dass Eure neue Kommentar-Erweiterung keine Importfunktion aus der DB oder über ein Sheet (CSV) hat, bzw Ihr alte Kommentare aus einem Backup wieder herstellen wollt – sonst wärt Ihr ja nicht hier.

Ihr benötigt folgendes:
– Zugang zur Datenbank (i.d.R. phpMyAdmin)
– Libre Office, o.ä.
– Texteditor mit Syntax-Highlightning (komfortabler)

Prinzipielle Vorgehensweise:
– Neue Kommentare aus Datenbank als CSV exportieren
– In Tabellenkalkulation als Schablone importieren
– Alte Kommentare aus Datenbank (oder SQL-Dump) exportieren
– Der Übersicht halber in Tabellendokument iportieren
– Alte Kommentarspalten in neue Schablone kopieren
– Alle SQL-Steuerzeichen entfernen
– Nach Artikel-ID sortieren
– Artikel-ID auf neue ID ändern
– Als OpenDocument-Sheet exportieren
– Import in neue Datenbanktabelle
– Übertragen der reinen Daten in die vorhandene Tabelle der neuen Kommentarerweiterung

Anleitung im Detail:
Im Joomla-Backend:
Neue Kommentar-Komponente/-Erweiterung installieren und konfigurieren.

Ähnlicher Artikel:   Facebook & Co: digitale Gegenwehr

Im Joomla Frontend:
Einen Kommentar abgeben.
Name: HOTZENPLOTZ
Email: HOTZENPLOTZ@TEST.COM
Kommentar: KOMMENTAR
usw. usf.
Dadurch seht Ihr in der DB im Klartext, was in welches Feld eingetragen wird.

Im phpMyAdmin:
Die Tabelle mit dem neuen Kommentar suchen – ggf. über die Suchfunktion nach HOTZENPLOTZ@TEST.COM suchen – und diese Tabelle als „CSV“ (nicht SQL!) exportieren.


Editieren
In Libre Office Calc:
CSV-Datei importieren und alle Klammern und Hochkommata – „(„, „)“, „`“ und „‚“ – suchen und entfernen (mit nichts ersetzen). Die Klammern natürlich nicht in der Spalte mit den Kommentaren löschen, logisch!

Im Editor:
Altes SQL-Backup in einem Editor öffnen, der auch Syntax-Highlightning beherrscht. TextWrangler (macOS) zum Beispiel.

Die alten Kommentare im Editor suchen und die Einträge von „INSERT INTO `j-Präfix_Comments`“ (je noch CMS und sinngemäß!) bis zum Ende der Einträge markieren und kopieren.

Libre Office Calc:
Die Daten in ein neues Libre Calc Dokument einfügen. Es erscheint ein Import-Assistent.
Die Werte sind kommasepariert. Den Texttrenner „‚“ (Hochkomma) unbedingt löschen!
Importieren.


Auch hier alle Klammern und Hochkommata – „(„, „)“, „`“ und „‚“ – suchen und entfernen (mit nichts ersetzen). Die Klammern dabei nicht in der Kommentarspalte löschen!


Die Tabelle sollte nun selbsterklärend sein – mehr oder minder. 🙂
Jetzt die einzelnen Spalten ab der zweiten Zeile kopieren und in das erste Dokument (das mit der Tabelle der neuen Kommantar-Erweiterung) in die entsprechenden Spalten eintragen.

Wenn Ihr nur von einer alten Kommentar-Erweiterung auf eine neue wechselt, dann geht es mit dem Import weiter.

Wechselt Ihr aber von einem CMS in ein anderes, oder wenn sich die Artikel-IDs durch den Umzug geändert haben, dann müsst Ihr folgendes machen:

IMPORT
Jetzt wieder in das Sheet und den (abgekürzten) Artikelnamen durch die neue ID ersetzen.
Wenn Ihr fertig seid, dann speichert das Sheet als „Open Document-File“ (ODS).

Nun phpMayAdmin öffnen und das Sheet importieren.
Format: „Open Document Sheet“ auswählen.
Haken an „Oberste Zeile enthält die Spaltennamen“
Alles andere deaktivieren.
Importieren.

Den Import suchen, heisst vermutlich „Tabelle 1“.
Operationen –> kopiere Tabelle nach
Dort den Namen der Tabelle der Kommentarkomponente eintragen und „Nur Daten“ aktivieren.
Importieren.

Wenn Ihr alles richtig gemacht habt, dann sollten nun alle Kommentare migriert sein.