You are here

Migration Drupal-6 nach Drupal-8

Im Gegensatz zu komplizierten Sites mit vielen Modulen, die häufig erst für Drupal-7 verfügbar sind (siehe: Migration Drupal-6 nach Drupal-7), können wir für einfache Sites gleich den Schritt nach Drupal-8 wagen.

1. Vor der Migration

Überprüfe vorher alle zusätzlichen Module, ob sie wirklich wichtig sind, ansonsten deaktiviere sie temporär oder für immer.

Wichtig: Views-2 Module macht Probleme, also unbedingt vorher in Drupal-6 schon auf das Views-3 Modul umsteigen.


drush dl ctools
drush en ctools
drush dl views-6.x-3.x-dev

Dann über den Admin -> Ansichten : die einzige oder die wenigen Ansichten (Views) kurz editieren und den Pager anpassen und speichern (siehe: "Pager Issue":https://www.drupal.org/node/1090098 ).

2. Migration

* Zuerst eine d8-Site aufspielen, ohne irgendwas zu konfigurieren. (Vorher eine passende leere Datenbank anlegen)

drush site-install standard --db-url=mysql://dbuser:dbpassword@localhost/dbname --sites-subdir=mein.host.name --locale=de

* Wir brauchen nun das "migrate_update":https://www.drupal.org/project/migrate_upgrade Modul for drush , und:

drush dl migrate_tools
drush dl migrate_plus
drush dl migrate_upgrade
drush en migrate_tools migrate_upgrade

* Nun kommt die geniale Migration direkt aus der Drupal-6 Datenbank in die neue Drupal-8 Site

drush migrate-upgrade --legacy-db-url=mysql://db6user:db6pass@localhost/db6db --legacy-root=http://mein.host.name

Die Fehler sollte man sich merken, um das später kontrollieren zu können.

Ansonsten steht nun an, die Webseite aufzurufen und die Text-Filter und Image-Displays anzupassen


drush en libraries markdown language locale

"locale" wird benötigt, damit die Oberfläche auch in Deutsch dargestellt werden kann.

Besonderheit nginx und Bilder

Zuerst große Verwirrung: Im neuen Drupal-8 werden keine Bilder angezeigt. Mist(!) - stundenlang rumgedoktort ohne Erfolg.
Nachdem ich eine Nacht drüber geschlafen hatte, habe ich es noch einmal mit einer fruschen Drupal-8 site (ohne igrnedwas zu migrieren) und einem einzelnen Artikel mit Bild probiert. Auch dort wurde kein Bild angezeigt.

Lösung: Der Fehler war in der nginx Konfiguration zu suchen, da in der dortigen drupal.conf eine "Abkürzung" für statische Ressourcen unter /sites eingetragen war, das nginx die selber ausliefern durfte. In Drupal-8 werden die verschiedenen image-styles aber erst bei Bedarf (zur Laufzeit) generiert, müssen also unbedingt auch ins Routing via index.php?q= umgelenkt werden.

# Fighting with ImageCache - or Drupal-8 dynamic image-style-generation
location ~ ^/sites/.*/files/(imagecache|styles)/ {
try_files $uri @rewrite;
}

Wenn das Bild also bereits generiert wurde, darf es auch ausgeliefert werden, andernfalls geht er ins @rewrite und somit zum Routing via index.php

Bereich: