Migra­ti­on von Kommentaren

Lese­dau­er 5 Minu­ten

Bei der the­ma­ti­schen Auf­tei­lung mei­ner alten Web­site stand ich vor dem Pro­blem der Migra­ti­on, also wie ich alte Kom­men­ta­re mit auf die neu­en Domains neh­me. Das Vor­ge­hen ist bei jedem CMS iden­tisch, wel­ches einen MyS­QL-Ser­ver (MariaDB) oder etwas ver­gleich­ba­res benutzt.

Fol­gen­de Fra­ge­stel­lun­gen lese ich immer wie­der im Netz, aber es gibt da sel­ten eine Ant­wort darauf:

  • Wie impor­tie­re ich Kom­men­ta­re, wenn sich die Struk­tur der Web­site (und damit die Arti­kel-IDs geän­dert) haben?
  • Wie impor­tie­re ich über­haupt Kom­men­ta­re von einer Kom­men­tar-Kom­po­nen­te zu einer anderen?’
  • Wie impor­tie­re ich Kom­men­ta­re oder Gäs­te­buch­ein­trä­ge von Wor­d­Press zu Joom­la oder umgekehrt?

Viel­leicht liest es sich erst umständ­lich, aber die Migra­ti­on ist recht sim­pel und auch flott erle­digt. Die Anlei­tung ist nar­ren­si­cher, wenn Ihr Euch an alles hal­tet, pas­siert auch nichts mit Eurer Daten­bank. Sicher könn­te man etwas scrip­ten oder alles ele­gan­ter mit SQL-Befeh­len erle­di­gen, aber wie gesagt: es soll ein­fach und nar­ren­si­cher auch für Anfän­ger sein. Trotz­dem muss das jetzt sein:

ACHTUNG:
Ich haf­te nicht für Schä­den, die Ihr beim Befol­gen die­ser Anlei­tung anrich­tet. Irr­tü­mer sind aus­drück­lich vor­be­hal­ten.  Wenn Ihr Euch die Web­site zer­stört, Euch die Daten­bank oder der Ser­ver explo­diert, ihr alle Daten ver­liert: Ich bin nicht schuld! Ich sage nicht: „Macht es genau so!”, ich sage nur: „Ich habe es so gemacht”. Jeder muss sel­ber wis­sen, was er da tut. Und immer dar­an den­ken: „Kein Back­up – kein Mitleid”.

Ich gehe davon aus, dass Eure neue Kom­men­tar-Erwei­te­rung kei­ne Import­funk­ti­on aus der DB oder über ein Sheet (CSV) hat, bzw Ihr alte Kom­men­ta­re aus einem Back­up wie­der her­stel­len wollt – sonst wärt Ihr ja nicht hier.

Ihr benö­tigt folgendes:
– Zugang zur Daten­bank (i.d.R. phpMyAdmin)
– Libre Office, o.ä.
– Text­edi­tor mit Syn­tax-High­light­ning (kom­for­ta­bler)

Prin­zi­pi­el­le Vorgehensweise:
– Neue Kom­men­ta­re aus Daten­bank als CSV exportieren
– In Tabel­len­kal­ku­la­ti­on als Scha­blo­ne importieren
– Alte Kom­men­ta­re aus Daten­bank (oder SQL-Dump) exportieren
– Der Über­sicht hal­ber in Tabel­len­do­ku­ment iportieren
– Alte Kom­men­tar­spal­ten in neue Scha­blo­ne kopieren
– Alle SQL-Steu­er­zei­chen entfernen
– Nach Arti­kel-ID sortieren
– Arti­kel-ID auf neue ID ändern
– Als Open­Do­cu­ment-Sheet exportieren
– Import in neue Datenbanktabelle
– Über­tra­gen der rei­nen Daten in die vor­han­de­ne Tabel­le der neu­en Kommentarerweiterung

Anlei­tung im Detail:
Im Joom­la-Backend:
Neue Kom­men­tar-Kom­po­nen­te/-Erwei­te­rung instal­lie­ren und konfigurieren.

Im Joom­la Frontend:
Einen Kom­men­tar abgeben.
Name: HOTZENPLOTZ
Email: HOTZENPLOTZ@​TEST.​COM
Kom­men­tar: KOMMENTAR
usw. usf.
Dadurch seht Ihr in der DB im Klar­text, was in wel­ches Feld ein­ge­tra­gen wird.

Im phpMy­Ad­min:
Die Tabel­le mit dem neu­en Kom­men­tar suchen – ggf. über die Such­funk­ti­on nach HOTZENPLOTZ@​TEST.​COM suchen – und die­se Tabel­le als „CSV” (nicht SQL!) exportieren.
phpMyAdmin


Edi­tie­ren
In Libre Office Calc:
CSV-Datei impor­tie­ren und alle Klam­mern und Hoch­kom­ma­ta – „(„, ”)”, „ ‚” und „ ‚” – suchen und ent­fer­nen (mit nichts erset­zen). Die Klam­mern natür­lich nicht in der Spal­te mit den Kom­men­ta­ren löschen, logisch!

Im Edi­tor:
Altes SQL-Back­up in einem Edi­tor öff­nen, der auch Syn­tax-High­light­ning beherrscht. Text­Wrang­ler (macOS) zum Beispiel.

Die alten Kom­men­ta­re im Edi­tor suchen und die Ein­trä­ge von „INSERT INTO ‚j‑Präfix_​Comments‚” (je noch CMS und sinn­ge­mäß!) bis zum Ende der Ein­trä­ge mar­kie­ren und kopieren.

Libre Office Calc:
Die Daten in ein neu­es Libre Calc Doku­ment ein­fü­gen. Es erscheint ein Import-Assistent.
Die Wer­te sind kom­ma­se­pa­riert. Den Text­tren­ner „ ‚” (Hoch­kom­ma) unbe­dingt löschen!
Importieren.

  • (Wer­bung) hessburg affi cloud banner

Auch hier alle Klam­mern und Hoch­kom­ma­ta – „(„, ”)”, „ ‚” und „ ‚” – suchen und ent­fer­nen (mit nichts erset­zen). Die Klam­mern dabei nicht in der Kom­men­tar­spal­te löschen!


Die Tabel­le soll­te nun selbst­er­klä­rend sein – mehr oder minder. 🙂
Jetzt die ein­zel­nen Spal­ten ab der zwei­ten Zei­le kopie­ren und in das ers­te Doku­ment (das mit der Tabel­le der neu­en Kom­man­t­ar-Erwei­te­rung) in die ent­spre­chen­den Spal­ten eintragen.
fertiges ods

Wenn Ihr nur von einer alten Kom­men­tar-Erwei­te­rung auf eine neue wech­selt, dann geht es mit dem Import weiter.

Wech­selt Ihr aber von einem CMS in ein ande­res, oder wenn sich die Arti­kel-IDs durch den Umzug geän­dert haben, dann müsst Ihr fol­gen­des machen:

Arti­kel-ID suchen und ersetzen
Nach der Arti­kel-ID in der Tabel­le mit den alten Ein­trä­gen suchen.

Nun im SQL-Back­up im Text­edi­tor nach „ ‚com_content.article.XXX’ (sinn­ge­mäß) suchen. Dabei natür­lich die ID-Num­mer statt der o.a. „XXX” suchen.
Ihr seht irgend­wo danach den Artikelnamen:
‚com_content.article.19’, ‚ARTIKELNAME DEINES ARTIKELS’
Cool, nicht wahr? 😉


Okay, nun im neu­en Sheet bloß nicht die ID suchen und die erset­zen! Die IDs sind ein- bis vier­stellg! „22” ersetzt folg­lich „22”, „122”, „221”, „222” zum Teil eben­falls! Des­we­gen müsst Ihr fol­gen­des machen, ist eh übersichtlicher:

Das gan­ze Sheet bis auf die Kopf­zei­le markieren.
Jetzt die ers­te Zel­le in der ID-Spal­te mit gedrück­ter Shift-Tas­te (Hoch­stell­tas­te) auswählen.
Dadurch „weiß” Calc, dass Ihr die­se Spal­te meint, wenn Ihr jetzt das Sheet kom­plett nach die­ser Spal­te neu sor­tiert: Icon „A‑Z” klicken.

Nun erschei­nen alle Kom­men­ta­re nach den Arti­kel sor­tiert. Sau­be­re Sache.
Super. Jetzt könn­te man das Sheet sicher­heits­hal­ber mal abspeichern.


Nehmt nun die ers­te Arti­kel-ID in der Spal­te und sucht den pas­sen­den Arti­kel-Namen mit dem Text­edi­tor in SQL-Back­up, wie oben beschrieben.

Tragt den Namen des Arti­kel (oder einen sinn­vol­len Teil davon) in das Feld mit der ID. Sind meh­re­re Kom­men­ta­re zu einem Arti­kel abge­ge­ben wor­den was die Regel ist), mar­kiert Ihr die Zel­le ein­mal, bis sie schwarz umran­det ist und sieht die Umran­dung an dem klei­nen Knub­bel unten rechts über alle Zel­len in der Spal­te, die die ID des Arti­kels beinhalten.
Das macht Ihr mit allen Artikeln.

Haupt­ar­beit ist dabei, die alte Arti­kel­num­mer mit dem alten Arti­kel­na­men herauszufinden.

Habt Ihr alle IDs mit dem alten (abge­kürz­ten) Arti­kel­na­men ersetzt, sucht Ihr Euch im Backend unter „Inhalt” –> „Bei­trä­ge”  (WP: Bei­trä­ge, Alle Bei­trä­ge) den neu­en Arti­kel­na­men und die dazu pas­sen­de neue Arti­kel-ID (ganz rechts, Spal­te „ID”). In Wor­d­Press hal­tet Ihr die Maus über den Link des Bei­trags­na­mens, dann wird i.d.R. in den meis­ten Brow­sern die URL unten links ange­zeigt. Dort steht unter ande­rem: „POST-XXXX”. Das ist die Post-ID.

IMPORT
Jetzt wie­der in das Sheet und den (abge­kürz­ten) Arti­kel­na­men durch die neue ID ersetzen.
Wenn Ihr fer­tig seid, dann spei­chert das Sheet als „Open Docu­ment-File” (ODS).

Nun phpMa­y­Ad­min öff­nen und das Sheet importieren.
For­mat: „Open Docu­ment Sheet” auswählen.
Haken an „Obers­te Zei­le ent­hält die Spaltennamen”
Alles ande­re deaktivieren.
Importieren.
import sql details

Den Import suchen, heißt ver­mut­lich „Tabel­le 1”.
Ope­ra­tio­nen –> kopie­re Tabel­le nach
Dort den Namen der Tabel­le der Kom­men­tar­kom­po­nen­te ein­tra­gen und „Nur Daten” aktivieren.
Importieren.
phpMayAdmin import

Wenn Ihr alles rich­tig gemacht habt, dann soll­ten nun alle Kom­men­ta­re migriert sein.

Schreibe einen Kommentar

Ich bin mit der Datenschutzerklärung und der Speicherung meiner eingegebenen Daten einverstanden.