Trick 77 für historische Datensammlungen

Ich habe endlich einen Weg gefunden, wie ich meine Artikeldatenbank in MS-Access-Form ins Web bekomme und via Handy bewirtschaften kann. Die Lösung ist einfach – und fast genial. 😉

Kurz vor Ende des letzten Jahres ist mir aufgegangen, dass mein Projekt 2020 noch der Vollendung harrt. Zur Rekapitulation: Es geht um die Datenbank meiner Artikel, die ich seit ungefähr 1992 in Microsoft Access führe.

Diese Lösung ist nicht mehr zeitgemäss: Ich hätte gerne eine Möglichkeit, von überallher und auch mobil auf mein Archiv zuzugreifen. Darum soll diese Datenbank entweder ins Web oder aber wenigstens aufs Smartphone.

Ich habe zu diesem Zweck mehrere Möglichkeiten getestet:

An dieser Stelle war meine Begeisterung ziemlich abgeebbt: Es schien, dass Aufwand und Ertrag in einem krassen Missverhältnis stehen. Denn so schön es wäre, die Datenbank zur Verfügung zu haben, will ich mich deswegen nicht in ungebührliche Unkosten stürzen und auch keinen extremen Aufwand betreiben.

Trotzdem wollte ich das Projekt 2020 mit wenigstens einem Jahr Verspätung zu Ende bringen. Ich bin daher auf die Idee verfallen, einen Testlauf mit WordPress zu unternehmen. Denn der Kern meiner Artikelsammlung sind die Artikel – und die sind in einem Content Management System naturgemäss gut aufgehoben.

Die wesentlichen Informationen lassen sich problemlos übernehmen

Wichtig sind mir neben dem Volltext obendrein das Erscheinungsdatum und das Medium, in dem der Text publiziert worden ist. Diese Informationen lassen sich in WordPress problemlos abbilden: Jeder Post hat ein Erscheinungsdatum, und das Medium lässt sich via Kategorie oder Tag zuordnen.

Meine Access-Datenbank ist zwar relational aufgebaut, d.h. sie hat mehrere über Schlüssel verbundene Tabellen. Aber zwingend ist das nicht: Die Haupttabelle ist diejenige, in der die Artikel steckt. Ich habe noch zwei, drei Tabellen extra eingebaut, weil ich die Möglichkeiten einer relationalen Datenbank ausloten wollte. Aber die lassen sich ohne wesentliche Einschnitte weglassen.

Also, erste Frage: Wie einfach bekommt man seine Access-Datenbank nach WordPress? Ein direkter Import ist nicht möglich. Doch wenn ich mich auf eine Tabelle (oder Abfrage) beschränke, kann ich die in einem Format exportieren, die ich in WordPress hineinbekomme. Es bietet sich Excel oder simples CSV an. Den Trick habe ich schon einmal erfolgreich angewandt, nämlich, als ich die Inhalte aus einer alten PHP-Website in WordPress hineingebastelt habe.

In ein paar Minuten ist der Mist geführt

Im Excel-Importer werden die Felder aus der Tabelle per Drag&Drop zugeordnet.

Für den Import der CSV-Datei habe ich mit zwei Plugins experimentiert.

Erstens mit Import Content in WordPress & WooCommerce with Excel. Das hat den Zweck mehr oder weniger erfüllt, ist aber wahnsinnig langsam. Der Import meiner rund 8000 Artikel hätte Stunden gedauert und so viel Geduld hatte ich nicht.

Die Datenübernahme dauert bei Excel Importer wahnsinnig lange – etwa ein Datensatz pro Sekunde.
Die Zuordnung der Datenbankfelder bei WP All Import. Auch Custom Fields sind möglich.

Das zweite Plugin hingegen ist ein Volltreffer. Das heisst WP All Import und erfüllt in der kostenlosen Version meine Bedürfnisse.

Doch weil es den Job so gut – und in drei, vier Minuten – erledigte und in der Kaufvariante noch zusätzliche, interessante Funktionen aufweist, habe ich mir die Pro-Version für 99 US-Dollar geleistet. Denn so viel ist mir mein Archiv wert!

WP All Import importiert nicht nur CSV, sondern auch XML. Was mich überzeugt, ist die einfache Zuordnung der Felder aus der Import-Tabelle mit WordPress-Datenfeldern. Es ist kein Ding, das Datum aus der CSV-Tabelle mit dem Datumseintrag des WordPress-Beitrags zu verbinden; den Inhalt richtig zu befüllen und den Code des Mediums als Kategorie anzulegen.

Bei WP All Import dauert der Import von 8000 Artikeln höchstens ein paar Minuten.

Zusatzinformationen als Custom fields ablegen

Die Pro-Variante ermöglicht zusätzlich, die Felder, die nicht direkt mit WordPress-Datenbankeinträgen korrespondieren, als custom fields anzulegen. Das sind selbst angelegte Datenbankeinträge, die man nach Gutdünken nutzt.

Da ich meine Artikel, die ich damals als rasender Reporter geschrieben habe, mit einer Ortsangabe versehen habe, konnte ich diese Angabe in ein eigenes Feld übernehmen. Ebenfalls das Honorarfeld, die Angabe der Textsorte oder Rubrik und solche Dinge. Auf die hätte ich zur Not auch verzichtet. Aber warum sie nicht in die neue Datenbank hinüberretten, wenn die Möglichkeit besteht?

Die Pro-Variante speichert die Zuordnung der Felder als Vorlage ab, was ebenfalls nützlich ist, wenn man mit einer gewissen Regelmässigkeit solche Importvorgänge wiederholen möchte.

Das hat nicht perfekt, aber recht gut geklappt. Nach dem Import musste ich ein paar Sonderzeichen wie Gedankenstriche und Apostrophe korrigieren. Ausserdem habe ich zwischen Absätzen Leerzeichen eingefügt, damit die Artikel besser dargestellt werden. Für diese Aufgabe habe ich das im Beitrag Perfektion hat ihren Preis besprochene Plugin Search Regex benutzt. Die Leerzeilen habe ich direkt in phpMyAdmin reingebastelt (\n in \n\n). Sinnvollerweise bereitet man aber schon die CSV-Exportdatei passend auf.

Ausserdem sind fünfzig Artikel auf der Strecke geblieben. Ich muss herausfinden, welche das sind und warum die nicht importiert werden konnten. Das sollte anhand der ausführlichen Logdatei von WP All Import eine lästige, aber nicht übermässig schwierige Angelegenheit sein¹.

Ende gut – fast alles gut!

Die Sammlung meiner Artikel ist unter archiv.matthiasschuessler.ch zugänglich. Im Moment gibt es keinerlei Restriktionen, aber ich habe vor, den Abruf irgendwie einzuschränken.

So präsentiert sich mein Archiv jetzt – schlicht und funktional, auch dank des grossartigen WordPress-Themes https://unax.org/unax-theme/.

Vielleicht baue ich eine Art Paywall oder stelle von den Beiträgen öffentlich nur den Anfang zur Verfügung. Da muss ich noch herausfinden, was am praktikabelsten ist. (Denn einige der Artikel, die dort zu lesen sind, gibt es andernorts nur mit einem Abo – das will ich mit meinem Archiv nicht unterlaufen.)

Wie ein Blick in die Datenbank zeigt, wurden die Zusatzfelder tatsächlich übernommen.

Es bleibt noch etwas Raum für Perfektionierung. Erstens die Möglichkeiten zur Suche und Filterung, die mit den Standard-Möglichkeiten von WordPress nicht zufriedenstellen. Doch da ist Besserung in Sicht.

Zweitens die Frage, wie man die Daten aus den individuellen Feldern (custom fields) vernünftig anzeigt.

Im Backend von WordPress sind sie standardmässig nicht zu sehen – dass sie vorhanden sind, konnte ich via phpMyAdmin überprüfen (PS: Wie grotesk ist eigentlich die Datenbankstruktur von WordPress?)

Also, wie bekommt man diese Daten ohne übermässigen Aufwand im Frontend zu sehen und/oder wie kann man sie im Backend bearbeiten?

Ich habe erste Erfolge mit dem Plug-in Advanced Custom Fields erzielt. Hier richtet man eine Feldgruppe ein, in der die von WP All Import Pro importierten Variablen erfasst werden. Und siehe da: So erscheinen die Metadaten im Backend beim einzelnen Artikel. Ich werde experimentieren, ob ich sie auch im Frontend angezeigt bekomme – aber unbedingt nötig ist das nicht, weil diese Informationen im Grund nur mich etwas angehen.

Die Erkenntnisse zu den «custom fields» in WordPress wird es demnächst in einem eigenen Beitrag hier zu lesen geben.

Fussnoten

1) Eine Inspektion hat ergeben, dass alle Beiträge importiert worden sind. Die Meldung, es seien fünfzig Beiträge übersprungen worden, ist offenbar unzutreffend. Im Log heisst es «ERROR: Inhalt, Titel und Textauszug sind leer». Das deutet darauf hin, dass versucht wurde, Phantom-Beiträge einzulesen. Die können z.B. durch Leerzeilen entstanden sein.

Beitragsbild: Eine schöne Ablage macht Freude – egal, ob analog oder digital (Anete Lusina, Pexels-Lizenz).

Autor: Matthias

Computerjournalist, Familienvater, Radiomensch und Podcaster, Nerd, Blogger und Skeptiker. Überzeugungstäter, was das Bloggen angeht – und Verfechter eines freien, offenen Internets, in dem nicht alle interessanten Inhalte in den Datensilos von ein paar grossen Internetkonzernen verschwinden. Wenn euch das Blog hier gefällt, dürft ihr mir gerne ein Bier oder einen Tee spendieren: paypal.me/schuessler

Kommentar verfassen