IT-MÜCKE

Migration von Drupal zu Dokuwiki

29.10.2016

Die letzten Tage habe ich damit verbracht die Webseiten von IT-MÜCKE von Drupal 6 auf DokuWiki umzuziehen.

Vorarbeiten und Gedanken

  • Drupal speichert alle Beiträge in einer Datenbank
  • DokuWiki speichert alle Beiträge in Dateien
  • Ich musste also als erstes die Tabellen und Spalten in der Datenbank von Drupal lokalisieren, die meine gewünschten Infos beinhalten
  • Diese Daten musste ich exportieren und dann vielfach filtern. Als Stichworte für die nötigen Vorarbeiten:
    • Richtiger Content-Type
    • Neuste Version des jeweiligen Beitrags
    • Passendes Export-Format herausfinden
  • Drupal speichert HTML als Inhalt einer Webseite
  • Also brauchte ich Werkzeug, dass HTML in DokuWiki-Markup umwandelt: pandoc.org
  • Dokuwiki kann zwar HTML direkt anzeigen, aber das ist eine Lösung, die ich in diesem Fall nicht optimal fand

Export

  • Ich exportierte die Tabelle, die meine Seiten und Beiträge enthielt: node revsions
  • Als Zielformat wählte ich CSV for Excel, das Tool meiner Wahl war phpMyAdmin
  • Innerhalb der Tabellenkalkulation (in diesem Fall eine Mischung aus Excel und LibreOffice aus Gründen der Verfügbarkeit - es reicht auch nur eins von beiden) konnte ich die Daten so filtern, dass mir für jede Node eine Zeile mit der neusten Version übrig blieb.
  • Später generierte ich aus der selben Datei noch eine Tabelle mit Node-ID und CreationDate, damit ich je Node das Erstellungsdatum angeben konnte.
  • Ich besorgte mir zusätzliche die Tabelle mit der Verknüpfung Node-ID und ContentType, um Seiten von Blog-Beiträgen unterscheiden zu können
  • Mittels Tabellenkalkulation, Linux-Bash und vielen Stunden Arbeit erhielt ich letzten Endes für jeden Blog-Beitrag eine Datei

Import

  • Diese konnte ich mittels den oben genannten pandoc von HTML in DokuWiki-Markup umwandeln
  • Die Bilder band ich nachträglich manuell ein (ein grep {{ * lieferte mir als Hilfe nur die Dateien, die Bilder enthielten)
  • Später ging ich die Beiträge manuell durch und bereinigte interne Drupal-Links (z.B. taxonomy). Viele ersetzte ich durch Links zu entsprechenden Suchen in DokuWiki

Nacharbeiten

  • Ich muss den Code jedes Beitrags prüfen und anpassen. Code wird nicht richtig umgesetzt - mangels richtiger Umsetzung damals in Drupal meinerseits.
  • Ich bin schließlich jeden Beitrag einzeln manuell durchgegangen und habe ihn geprüft, ob alles passt
  • Es waren noch einige Nacharbeiten notwendig, ein Teil ließ sich automatsieren (z.B. mittels sed, siehe auch Blog-Artikel „sed: Teile von Mustern ersetzen“)

Abschlussgedanken

  • Der Umzug war einfacher, als erwartet und ließ sich recht gut über Bash-Skripte automatisieren
  • Es blieb dennoch viel Handarbeit übrig
  • Ich hatte anfangs die Bedenken alle Bloginhalte zu verlieren, weil ein Export über Drupal selbst nicht möglich war.
  • Aber dank der Basteleien ging es am Ende doch recht gut. Würde ich wieder so machen ;o)

zurück