Drupal und Exponential
Übersicht Migration · Checkliste · Abbildung · Werkzeuge
Inhalt
- 1. Was Drupal exportieren kann
- 2. Drupal auf Exponential abbilden
- 3. Von Drupal zu Exponential, Schritt für Schritt
- 4. Adressen und Weiterleitungen
- 5. Von Exponential zu Drupal
- 6. Risiken und Checkliste
- Quellen
1. Was Drupal exportieren kann
Drupal hat keine einzelne Datei „die Site exportieren“. Laut drupal.org:
| Werkzeug | Was Sie erhalten | Hinweise |
|---|---|---|
| JSON:API (Kernmodul) | jede Entität unter /jsonapi/{entity_type_id}/{bundle_id}[/{uuid}], Medientyp application/vnd.api+json | standardmäßig nur lesend; höchstens 50 Ressourcen pro Anfrage, folgen Sie dem next-Link; eine Seite kann wegen Zugriffsprüfungen weniger Einträge enthalten |
Migrate API (Kernmodule migrate, migrate_drupal; Drush-Befehle migrate:*) | ein Framework, um Inhalte nach Drupal zu bringen; seine Quell-Plugins lesen ältere Drupal-Datenbanken | nützlich in der Gegenrichtung (5) |
| Views Data Export (Contrib-Modul) | CSV, XLS, JSON oder XML aus jeder View, in Stapeln | braucht im Stapelmodus eine Sortierung nach einer eindeutigen ID |
| Die Datenbank | alles, in den Entitäts- und Feldtabellen von Drupal (node_field_data, node__<field> ...) | direktes Auslesen ist möglich, bindet Sie aber an die Schemaversion |
sites/default/files | die verwalteten Dateien | kopieren |
JSON:API ist die praktischste Quelle: Es liefert jeden Inhaltstyp mit seinen Feldern, Beziehungen (Taxonomie, Medien, Autoren) und dem Pfad-Alias, in einem dokumentierten Format, ohne dass Sie Drupal-Code schreiben müssen.
2. Drupal auf Exponential abbilden
| Drupal | Exponential 6 |
|---|---|
| Inhaltstyp (Node-Bundle) | Klasse |
| Feld | Attribut (Text zu ezstring/eztext, formatierter Text zu ezxmltext, Bild zu ezimage oder einer Relation, Entitätsreferenz zu ezobjectrelationlist, Liste zu ezselection, Datum zu ezdatetime, Link zu ezurl) |
| Body (Text mit Zusammenfassung) | body und intro (ezxmltext), HTML umgewandelt |
| Paragraphs (Contrib) | Unterobjekte kleiner Klassen oder Blöcke von Exponential Layouts für Landingpages |
| Taxonomie-Vokabular und -Begriffe | Ordner oder eztags (Hierarchie, Synonyme) |
| Medienentitäten und Dateien | Bild-/Datei-/Medienobjekte unterhalb von Medienordnern |
| Menü (Menülinks) | der Inhaltsbaum und die Sortierung |
| Blockinhalte | Layout-Blöcke oder Objekte, die von Templates angezeigt werden |
| Benutzer, Rollen | Benutzerobjekte in Gruppen; Rollen neu aufgebaut. Die Passwort-Hashes von Drupal haben ein eigenes Format; planen Sie das Zurücksetzen ein |
Pfad-Alias (/about-us) | der URL-Alias des Knotens oder ein weiterleitender eigener Alias |
| Sprache und Übersetzungen | Übersetzungen desselben Objekts |
| Revisionen | nicht importiert; die aktuelle Revision wird Version 1 |
| Webform-Einsendungen | archiviert; Formulare mit der Informationssammlung neu aufgebaut |
| Metatag (Contrib) | xrowmetadata |
3. Von Drupal zu Exponential, Schritt für Schritt
- Bestandsaufnahme der Inhaltstypen und Felder (Struktur > Inhaltstypen > Felder verwalten), Vokabulare, Medientypen, Sprachen und der Contrib-Module, die Inhalte speichern (Paragraphs, Webform, Metatag, Redirect).
- Aktivieren Sie JSON:API auf einer Kopie der Site, nur lesend (die Standardeinstellung), und ein Konto mit Lesezugriff auf alles, was Sie migrieren.
- Legen Sie die Klassen und den Baum in Exponential an.
- Export: Ein Skript blättert für jeden Typ durch
/jsonapi/node/<bundle>(mitinclude=für die Beziehungen, die Sie brauchen), dann durch Taxonomie, Medien, Dateien und Benutzer, und schreibt JSON mit Remote-IDs wiedrupal-node-<uuid>. Kopieren Siesites/default/files. - Import in der Reihenfolge der Abhängigkeiten: Dateien und Medien, Taxonomie, dann Nodes, dann Übersetzungen; Relationen über die
Remote-ID aufgelöst. Der Importer von xrowextract mit
--mapoder das Skript-Grundgerüst. - Weiterleitungen aus den Pfad-Aliasen und der Tabelle des Redirect-Moduls (4).
- Suche und Aliase neu aufbauen, testen, proben, umstellen (Checkliste).
4. Adressen und Weiterleitungen
- Pfad-Aliase (
path_alias-Entitäten, mit jedem Node als dessen Feldpathexportiert) werden zu Knoten-Aliasen, wenn der Baum passt, sonst zu weiterleitenden eigenen Aliasen. - Auch auf
/node/123, den Systempfad, wird verlinkt: Legen Sie für jede Node-ID einen Alias oder eine Weiterleitung im Webserver an. - Die bestehenden Weiterleitungen des Redirect-Moduls: Übernehmen Sie sie als Aliase oder Webserver-Regeln.
/taxonomy/term/45: auf die Ordner- oder Schlagwortansicht.- Sprachpräfixe (
/de/...): Siteaccesses von Exponential pro Sprache, mit Aliasen pro Übersetzung.
5. Von Exponential zu Drupal
- Exportieren Sie mit xrowextract (CSV/JSON pro Klasse mit URL-Alias, Remote-ID und Attributen) und kopieren Sie den Speicher (Exponential verlassen).
- Auf der Drupal-Seite ist die Migrate API der dokumentierte Weg hinein: Schreiben Sie Migrationen, deren Quelle die
xrowextract-Dateien liest (Quell-Plugins für CSV oder JSON stammen aus Contrib-Modulen; prüfen Sie das gewählte), und führen Sie sie
mit Drush aus (
migrate:import,migrate:rollback,migrate:status; Drush 10.4 und neuer enthält diese Befehle). - XmlText wird zu HTML (rendern oder transformieren); der Baum wird zu Menülinks oder Taxonomie; Aliase werden zu Pfad-Aliasen.
- Benutzer: Zurücksetzen der Passwörter.
6. Risiken und Checkliste
| Risiko | Gegenmaßnahme |
|---|---|
| Paragraphs und verschachtelte Entitäten | zuerst Unterklassen oder Layouts entwerfen; die tiefste Verschachtelung testen |
| 50 Einträge pro JSON:API-Seite | durch die ganze Sammlung blättern; mit der Bestandsaufnahme abgleichen |
| Durch Zugriffsrechte gefilterte Seiten | mit einem Konto exportieren, das alles sieht |
Links auf /node/<id> im Text | in einem zweiten Durchlauf auf die neuen Knoten auflösen |
- To do: Inhaltstypen, Felder, Vokabulare, Medien erfasst; Abbildungstabelle geschrieben.
- To do: JSON:API-Export vollständig (Anzahlen stimmen); Dateien kopiert.
- To do: Import in der Reihenfolge der Abhängigkeiten mit Remote-IDs; Übersetzungen denselben Objekten zugeordnet.
- To do: Pfad-Aliase,
/node/<id>und Einträge des Redirect-Moduls weitergeleitet und getestet. - To do: Metatag-Daten in
xrowmetadata; Sitemap; Webanalyse.
Quellen
- Paginierung in JSON:API: https://www.drupal.org/docs/core-modules-and-themes/core-modules/jsonapi-module/pagination
- Sicherheitsaspekte von JSON:API (Nur-Lese-Modus): https://www.drupal.org/docs/core-modules-and-themes/core-modules/jsonapi-module/security-considerations
- Upgrade mit Drush (Migrate): https://www.drupal.org/docs/upgrading-drupal/upgrade-using-drush
- Views Data Export: https://www.drupal.org/project/views_data_export
Werden Sie Exponential-Partner
Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.
Diese Seite ist Teil der Exponential-Dokumentation und freie Dokumentation unter der GNU Free Documentation License 1.3 oder einer späteren Version (die Lizenz dieser Dokumentation).