Serendipity zu WordPress umziehen

Möchte man einen Serendipity Blog zu einem WordPress umziehen, muss man leider etwas Handarbeit in diesen Vorgang stecken. Die Ausgangssitutation besteht dabei aus einem frisch installierten WordPress, sowie dem Serendipity. In der WordPress-Datenbank werden im ersten Schritt einige Modifikationen vorgenommen:

TRUNCATE wp_posts;
TRUNCATE `wp_postmeta`;
TRUNCATE `wp_term_relationships`;
TRUNCATE `wp_term_taxonomy`;
TRUNCATE `wp_comments`;
TRUNCATE `wp_commentmeta`;
DELETE FROM wp_terms WHERE wp_terms.term_id!=1;

Anschließend wird der Serendipity Importer für WordPress benötigt:

git clone https://github.com/ShakataGaNai/s9y-to-wp

In diesem gibt es eine Datei namens „serendipity.php“ welche in den „wp-content/plugins/serendipity/“ Ordner kopiert wird. Nach der Aktivierung des Plugins findet man im WordPress-Backend unter „Werkzeuge > Daten importieren“ einen Serendipity Importer.

Der Serendipity Import

Der Serendipity Import

In den Importer werden die Verbindungsdaten der Serendipity-Datenbank eingetragen. Beim Prefix sollte bei einer Serendipity-Standardinstallation „serendipity_“ stehen. Nun kann der Import für die einzelnen Teile der Datenbank gestartet werden. Die WordPress-Datenbank benötigt im Nachgang einige Aktualisierungen:

UPDATE `wp_comments` as a SET a.`comment_post_ID`= (SELECT b.`menu_order` FROM `wp_posts` as b WHERE a.`comment_post_ID`= b.`ID`);
UPDATE `wp_term_relationships` SET `object_id`=`object_id`+9000;
UPDATE `wp_term_relationships` as a SET a.`object_id`= (SELECT b.`menu_order` FROM `wp_posts` as b WHERE a.`object_id`-9000= b.`ID`);
UPDATE `wp_posts` SET `ID`=`ID`+9000;

Die folgenden Zeilen müssen nacheinander ausgeführt werden, da sie jeweils manuell angepasst werden:

UPDATE `wp_posts` SET `ID`=`menu_order`, `guid`=CONCAT("http://example.org/?p=",`menu_order`), `menu_order`=null; -- Replace MYURL.COM with your URL
SELECT `id`+1 FROM `wp_posts` ORDER BY `id` DESC LIMIT 0,1;
ALTER TABLE `wp_posts` AUTO_INCREMENT = XXX;

Der Wert „XXX“ entspricht dabei dem Ergebnis der Abfrage (SELECT). Damit sind die Daten im WordPress gelandet und können nun nachbearbeitet (Bilder & Dateipfade) werden.

5 Kommentare » Schreibe einen Kommentar

  1. Wie frevelhaft ;)

    Gabs nen spezifischen Grund?

    Aufpassen sollte man bei den Kommentaren, da dürfte die Formatierung zerstört werden – oder kümmert sich da der Importer drum?

    • Nein. Ob er die Formatierungen mit nimmt weiß ich nicht. In meinem Fall waren es nur Kommentare ohne solche.

  2. Pingback: Umzug | Übermüdet

  3. Hallo :-)

    Ich wollte gerade nach dieser Anleitung ein S9Y nach WordPress umziehen und bekomme dabei die Fehlermeldung

    Fatal error: Uncaught Error: Call to undefined function set_magic_quotes_runtime() in /home/www/wp/wp-content/plugins/serendipity/serendipity.php:99 Stack trace: #0 /home/www/wp/wp-content/plugins/serendipity/serendipity.php(129): Serendipity_Import->connect_s9ydb() #1 /home/www/wp/wp-content/plugins/serendipity/serendipity.php(577): Serendipity_Import->get_s9y_cats() #2 /home/www/wp/wp-content/plugins/serendipity/serendipity.php(757): Serendipity_Import->import_categories() #3 /home/www/wp/wp-admin/admin.php(364): Serendipity_Import->dispatch() #4 {main} thrown in /home/www/wp/wp-content/plugins/serendipity/serendipity.php on line 99

    Meine Hoffnung geht zwar gen Null aber gibt es 9 Jahre nach der Veröffentlichung noch jemanden, der einen Tipp hat? :-) Ich nutze auf dem Server die PHP Version 7.4 und tiefer geht leider auch nicht mehr. Falls das jemand liest: Hat jemand eine Idee, wie ich das fixen kann? Zur Not exportiere ich die Tabellen gerne auch manuell und importeire sie dann wieder manuell…

    Falls das niemand mehr liest: Allen eine Gute Zeit :-)

    • Hallo,

      das Problem scheint daran zu liegen, dass die Methode set_magic_quotes_runtime deprecated ist und wohl aus modernen PHP-Versionen (ab PHP 8) entfernt wurde.

      Jetzt gäbe es mehrere mögliche Workarounds, so könnte man den Umstellungsvorgang auf einer älteren PHP-Version durchführen. Alternativ könnte man den Aufruf von set_magic_quotes_runtime aus dem PHP-Skript entfernen und schauen was dann passiert.

      Im besten Fall läuft es durch, im schlimmsten Fall treten andere Inkompatibilitäten auf, da der entsprechende Import ja mittlerweile 9 Jahre auf dem Buckel hat.

Schreibe einen Kommentar zu seeseekey Antworten abbrechen

Pflichtfelder sind mit * markiert.