/ / Tools und Tipps zum Umschalten von CMS - Django, Drupal, Content-Management-System, Joomla

Tools und Tipps zum Umschalten von CMS - Django, Drupal, Content-Management-System, Joomla

Ich arbeite für eine Universität und im vergangenen Jahr wirEndlich haben wir uns von unserer statischen HTML-Site mit mehreren tausend Seiten gelöst und sind auf eine Drupal-Site umgezogen. Dies ist offensichtlich mit einer enormen Dateneingabe verbunden.

Was ist, wenn Sie bereits ein CMS verwenden und es sind?zu einem anderen wechseln, der Ihren Bedürfnissen besser entspricht? Wie minimieren Sie den Dateneingang während einer so großen Veränderung? Gibt es dafür Tools oder Best Practices, die befolgt werden sollten?

Antworten:

5 für die Antwort № 1
  • Erwarten Sie, dass Sie sowohl vorverarbeiten als auchVerarbeiten Sie Ihre Daten manuell nach, was auch immer passiert. Akzeptieren Sie frühzeitig, dass sich Ihre Daten wahrscheinlich in einem schlechteren Zustand befinden als Sie denken: Felder werden missbraucht; Record-to-Record-Referenzen (Fremdschlüssel) sind möglicherweise nicht richtig oder überhaupt nicht implementiert. Inhalte müssen wahrscheinlich gejätet werden und sind gelegentlich nur schlecht oder falsch.

  • Überprüfen Sie Ihre Datenbankkodierung. Ältere Datenbanken werden nicht in Unicode-Codierungen enthalten sein und werden mürrisch, wenn Sie Datendumps exportieren und an anderer Stelle importieren müssen. Selbst dann nehmen Sie an, dass Ihre Daten einige verrückte, nicht druckbare Zeichen enthalten: Programme wie Word scheinen sie irgendwie einzufügen Überall, und ich habe ... Codepunkte ... gesehen, die ihr nicht glauben würdet. Erwägen Sie, Ihre Daten zu durchsuchen, bevor Sie diese Zeichen überhaupt starten (oder sogar einen Datenbankspeicherauszug durchsuchen). Entscheiden Sie, ob Sie sie verschrotten möchten oder nicht, oder versuchen Sie, sie im Fall von z. Wort "intelligente" Interpunktionszeichen.

  • Es ist sehr schwierig, explizite Daten zu erstellenStrukturen aus impliziten. Wenn Ihre eingehenden Daten ein separates Datumsfeld haben, können Sie dieses einem Datumsfeld zuordnen. Wenn es ein Datum als Teil eines großen HTML-Klumpens hat, funktioniert einfaches Scripting nicht, selbst wenn sich dieses Datum in einem Tag mit einem ID-Attribut befindet. Sie können Offline-Scripting mit BeautifulSoup verwenden oder (wenn Ihr HTML-Code etwas besser ist) ) die schnellere lxml, um Ihren Datensatz vorzuverarbeiten, diese impliziten Felder zu extrahieren und sie in einem impliziten Format zu speichern. Erwägen Sie die Erstellung einer Zwischendatenbank, in die diese Revisionen verschoben werden sollen.

  • Das Migrate-Modul ist hervorragend, aber zu bekommenWirklich gute Datentreue und cleverere Tricks, die Sie möglicherweise benötigen, um mehr über das Hook-System (Drupals Terminologie für Funktionen nach einem bestimmten Namensschema) und die Grundlagen des Schreibens eines Moduls zum Einfügen dieser Hooks zu erfahren (ein Modul ist im Großen und Ganzen nur ein PHP-Datei, in der alle Funktionen mit demselben Text beginnen, dem Namen der Moduldatei.)

  • Alle importierten Inhalte sollten mit gekennzeichnet werdenzumindest eine flüchtige Prüfung. Sie können dies tun, indem Sie es mit dem Status = 0 importieren, d. H. Unveröffentlicht, und dann mit dem Modul Ansichten eine Ansicht erstellen, um den Inhalt durchzugehen und ihn zur Überprüfung auf anderen Registerkarten zu öffnen. Mit Massenoperationen für Ansichten können Sie eine Reihe von Kontrollkästchen neben Ihren Ansichtselementen einrichten, sodass Sie viele Knoten gleichzeitig genehmigen können.

  • Erwarten Sie, den Import auszuführen und erneut auszuführen und erneut auszuführen.jedes Mal neue Dinge reparieren. Überprüfen Sie zehn oder zwanzig Elemente so früh wie möglich. Wenn es Probleme gibt, überprüfen Sie zehn oder zwanzig weitere. Korrigieren und wiederholen Sie den Import.

  • Messen Sie, wie lange ein einzelner Importlauf wahrscheinlich dauertnehmen. Seien Sie pessimistisch: Wir hatten einen Import, von dem wir erwartet hatten, dass er zehn Stunden dauern würde, als wir den vollständigen Datensatz einführten. Bis wir endlich einige langsame Abfragen behoben hatten, sollte es zwei Wochen dauern.

  • Im Zweifelsfall oder wenn Sie das technische denkenAspekte der oben genannten Aspekte werden nur mehr Zeit in Anspruch nehmen als die Arbeit selbst, und dann nur Zeitarbeitskräfte einstellen, um die Daten zu erstellen. Aber Sie brauchen immer noch angemessene Qualitätskontrollen, so früh wie möglich während ihrer Arbeit. Drupal-Entwickler können auch gemietet werden: Probieren Sie den relevanten IRC-Kanal Ihres Landes aus oder veröffentlichen Sie eine Notiz in einer relevanten groups.drupal.org-Gruppe. Sie sind teurer als Zeitarbeitskräfte, schreiben aber normalerweise besseres PHP ...! Ziehen Sie auch in Betracht, eine Agentur zu beauftragen: Das ist ein schamloser Stecker, da ich für einen arbeite, aber manchmal ist es am besten, Experten für diese speziellen Jobs zu gewinnen.

  • Wirklich gute Importe sind immer schwer, schwerer als erwartet. Lass dich nicht unterkriegen!


7 für die Antwort № 2

Das Wandern Modul für Drupal würde eine große Hilfe bieten. Das Economist.com-Datenmigration nach Drupal gibt Ihnen einen Überblick über den Prozess.

Das Video von dem Migration: nicht nur für die Vögel Die Präsentation auf der Drupalcon DC 2009 ist wahrscheinlich etwas veraltet, bietet aber auch eine gute Einführung.


2 für die Antwort № 3

Der Assistent für die Migration + Tabelle (und Schema + Ansichten) ist der richtige Weg. Mit dem Tabellenassistenten können Sie jede Tabelle mithilfe der Migration Drupal- und Zuordnungsfeldern entsprechend aussetzen.

Hier finden Sie eine detaillierte Anleitung: http://www.lullabot.com/articles/drupal-data-imports-migrate-and-table-wizard


2 für die Antwort № 4
  1. Sie möchten von Django aus auf vorhandene Daten zugreifen können. Dies hilft mir sehr bei der Migration: http://docs.djangoproject.com/en/1.2/howto/legacy-databases/ . Mit korrekten Modelldefinitionen haben Sie vollDjango Power einschließlich des Administrators. Tatsächlich verwende ich Django nur als Admin-Backend für mehrere ältere PHP-Projekte - der Administrator von Django kann viele benutzerdefinierte handgeschriebene Admin-Skripte leicht übertreffen.

  2. Die Autorisierung sollte gleich bleiben. Benutzer sollten sich mit ihren Anmeldeinformationen anmelden können, es ist jedoch schwierig, ein Migrationsskript für Authentifizierungsdaten zu schreiben, da Kennwort-Hashing-Schemata möglicherweise unterschiedlich sind und es keine Möglichkeit gibt, zwischen ihnen zu konvertieren, ohne einfache Kennwörter zu kennen. Django bietet eine Möglichkeit, verschiedene Authentifizierungsquellen zu unterstützen, sodass Sie das Drupal-Authentifizierungs-Backend schreiben können: http://docs.djangoproject.com/en/1.2/topics/auth/#writing-an-authentication-backend

  3. Es ist nicht erforderlich, das vollständige Umschreiben durchzuführen. Wenn einige Teile einwandfrei funktionieren, können sie weiterhin von Drupal mit Strom versorgt werden. Neuer Code kann mit Django mit derselben Benutzeroberfläche geschrieben werden. Das Routing zwischen alten und neuen Teilen kann durch Umschreiben der Webserver-URL erfolgen. Sowohl Django- als auch Drupal-Teile können von derselben Datenbank gespeist werden.