/ / Wie von Drupal nach Django zu portieren? - Django, Drupal

Wie von Drupal nach Django zu portieren? - Django, Drupal

Was wäre der beste Weg, ein existierendes zu portieren?Drupal Website zu einer Django-Anwendung? Ich habe rund 500 Seiten (meist Bücher Modul) und rund 50 Blog-Posts. Ich verwende keine Module von Drittanbietern. Ich möchte die aktuellen URLs (für SEO-Zwecke) behalten und die Datenbank nach Django migrieren. Ich werde eine einfache Blog-Anwendung erstellen, so dass die Migration von Blog-Posts in Ordnung sein sollte. Was wäre der beste Weg, mehr als 500 Seiten mit Django zu bedienen? Ich möchte Admin verwenden, um neue Seiten zu bearbeiten / hinzuzufügen.

Antworten:

12 für die Antwort № 1

Alle Django Entwicklung ist ähnlich, und Ihre wird das Muster passen.

  1. Definieren Sie das Django-Modell für Ihre Bücher und Blog-Posts.

  2. Testen Sie dieses Modell mit den integrierten Testfunktionen von Django.

  3. Schreiben Sie einige kleine Hilfsprogramme, um Ihre alten Daten in Django zu laden. An diesem Punkt werden Sie erkennen, dass Ihr Django-Modell nicht perfekt ist. Gut. Repariere es. Fix die Tests. Wiederholen Sie die Lasten.

  4. Konfigurieren Sie die Standard-Admin-Schnittstelle für IhreModell. An diesem Punkt werden Sie Zeit damit verbringen, die Admin-Oberfläche zu optimieren. Sie werden feststellen, dass Ihr Datenmodell falsch ist. Was ist eine gute Sache. Repariere dein Modell. Beheben Sie Ihre Tests. Fixiere deine Lasten.

  5. Jetzt, da Ihre Daten korrekt sind, können Sie Vorlagen von Ihren Legacy-Seiten erstellen.

  6. Erstellen Sie URL-Zuordnungen und zeigen Sie Funktionen an, um die Vorlagen aus dem Datenmodell aufzufüllen.

Nehmen Sie sich Zeit, um das Datenmodell richtig zu machen. Es ist wirklich wichtig, denn alles andere ist sehr einfach, wenn Ihr Datenmodell solide ist.


3 für die Antwort № 2

Es kann möglich sein, Django-Modelle zu schreiben, die mit der Legacy-Datenbank arbeiten (ich habe dies in der Vergangenheit getan; siehe Dokumentation auf manage.py inspectdb).

Ich habe jedoch den obigen Ratschlägen gefolgt und entwerfe einbereinigen Sie die Datenbank mithilfe von Django-Konventionen und migrieren Sie dann die Daten. Normalerweise schreibe ich Migrationsskripte, die über Django in die neue Datenbank schreiben und die alte mit den rohen Python-DB-APIs lesen (obwohl es möglich ist, Django an zu binden) mehrere Datenbanken gleichzeitig, auch).

Ich schlage auch vor, dass Sie sich die verfügbaren Blogging-Apps für Django ansehen. Wenn der eine enthalten ist Pinax passt zu Ihrem Bedarf, gehen Sie voran und verwenden Sie Pinax als Ausgangspunkt.


0 für die Antwort № 3

S.Lott antworten ist immer noch gültig nach Jahren, ich versuche, die Analyse mit den Werkzeugen und dem Format zu vervollständigen, um die Arbeit zu erledigen.

Es gibt viele Drupal-Export-Tools, aber mit genau der gleichen Anforderung, die ich habe Ansichten Datenquelle Wählen Sie JSON als Format. Dieses Modul ist sehr solide und für die letzte Version von Drupal verfügbar. Das JSON Format ist sehr schnell in Parsing und Encoding und es ist einfach zu lesen und sehr Python-freundlich (json importieren).

Mit Views Datasource können Sie eine Knotenansicht erstellensortiert nach Knoten-ID (nid), zeige eine begrenzte Anzahl von Elementen pro Seite an, konfiguriere einen Ansichtspfad, füge einen Filterbezeichner hinzu und überlasse ihm die NID, um alle Elemente zu lesen, bis du eine leere JSON-Antwort erhältst.

Wenn Sie in Django importieren, haben Sie auch eine große Auswahl an Werkzeugen, angefangen bei Lade Daten zum Laden von Fixtures. Ansichten Datenquelle exportierte JSON, aber es ist nicht formatiert, da Django Fixtures erwartet: Sie können ein benutzerdefinierter Admin-Befehl um den Import durchzuführen, wo Sie die volle Kontrolle über den Importfluss haben können.

Sie können Ihren Befehl mit einem NID = 0 as startenArgument und dann lassen Sie die Prozedur lesen, importieren und dann Daten von der nächsten Seite abrufen einfach übergeben die letzte NID in der vorherigen HTTP-Anfrage gelesen. Sie können sogar den Zugriff auf den angezeigten Pfad einschränken, benötigen jedoch zusätzliche Konfiguration auf der Importseite.

Im Hinblick auf die Performance analysierte und importierte ich zum Beispiel über 15.000 Knoten in weniger als 10 Minuten über einen benutzerdefinierten Django 1.8-Admin-Befehl auf einer 8-Core / 8-GB-Linux-Virtual Machine PostgreSQL Als DBMS protokollieren Sie Erfolgs- und Fehlerinformationen in einem benutzerdefinierten Modell für jeden Knoten.

Dies sind die Grundlagen für den Import / Export zwischen diesen beiden Plattformen, für detaillierte Informationen habe ich alle beschrieben wichtige Schritte für den Export von Drupal und dann Import nach Django in diesem Leitfaden.