Bisher war es so, dass mit der Veröffentlichung einer neuen Drupal-Version die Unterstützung für die Vor-Vor-Version endet. Mit der bevorstehenden Version 8 wird dieser Prozess etwas angepasst, so dass es nun ein dreimonatiges Zeitfenster gibt, in der Drupal 6 noch unterstützt wird.

In jedem Fall sollte eine Drupal 6 Seite aktualisiert werden. Diese Anleitung beschreibt die notwendigen Schritte, um von Drupal 6 auf Drupal 7 zu aktualisieren. Auch wenn es eine direkte Upgrade-Möglichkeit von Drupal 6 auf 8 geben wird, kan nder Zwischenschritt über Version 7 sinnvoll sein: meist dauert es eine Weile, bis Drittmodule mit einer neuen Drupal-Version funktionieren. Solange wäre dann die spezifische Funktion des Moduls nicht verfügbar. Dies lässt sich mit dem Upgrade auf Version 7 beheben.

Begriffe und Variablen

Variable

Bedeutung

Beispiel

$USERNAME

Nutzername des Mysql-Root-Nutzers

root

$PASSWORT

Passwort des Mysql-Root-Nutzers

$DATENBANK

Name der Drupal6-Datenbank

$DATENBANKKOPIE

Datei der Datenbankkopie

drupal6.sql

$URL

Webadresse der Seite

https://systemausfall.org

Da viele Schritte mit Drush durchgeführt werden, setzt diese Anleitung entsprechende Kenntnisse voraus.


Seitenanalyse

Vor dem Upgrade solltest du mindestens ermitteln, welches Theme und welche Drittmodule verwendet werden. Auf dieser Drupal-Seite kannst du heraus finden, ob Theme und Module für die neue Version verfügbar sind. Sofern das nicht der Falls ist, schaue dich nach entsprechendem Ersatz um.

Wartungsmodus

Die Seite sollte zu Beginn in den Wartungsmodus versetzt werden, damit keine Änderungen (Kommentare etc.) mehr von Nutzern vorgenommen werden können:

drush vset site_offline 1 && drush cc all

Dateien sichern

Das Drupal-Installationsverzeichnis und die Datenbank sollten vor dem Upgrade gesichert werden. Wird Mysql als Datenbank verwendet, lässt sich eine Kopie so anfertigen:

mysqldump -u $USERNAME -p $PASSWORT $DATENBANK > $DATENBANKKOPIE

Drittmodule deaktivieren

Alle Drittmodule müssen vor dem Upgrade deaktiviert werden:

drush pml --no-core --type=module --status=enabled --pipe > modules.list

for module in `cat modules.list`; do drush -y dis $module; done

Standard-Theme aktivieren

Weil das aktuelle Theme möglichweise nicht mehr unterstützt wird, sollte Garland als Standard-Theme aktiviert werden:

drush pm-enable garland -y && drush vset theme_default theme_name -y

Clean-URLs deaktivieren

Möglicherweise unterstützt die neue Drupal-Installation noch keine Clean-URLs. Damit die neue Seite bedienbar ist, sollte diese Funktion ebenfalls deaktiviert werden:

drush vset clean_url 0 -y

Cache leeren

Letzter Schritt in der alten Installation:

drush cc all

Drupal 7 herunterladen und installieren

Nun kann die neue Drupal-Version herunter geladen, entpackt und der Webserver (bspw. apache) entsprechende konfiguriert werden.

sites-Verzeichnis kopieren und Upgrade ermöglichen

Das alte sites-Verzeichnis der Drupal 6-Installation wird nun in das neue Drupal 7-Verzeichnis kopiert. Das bestehende Verzeichnis wird dabei überschrieben. Anschließend wird der Upgrade-Prozess per Weboberfläche aktiviert. Dazu muss die folgende Variable in der Datei settings.php im entsprechenden sites-Verzeichnis gesetzt werden:

$update_free_access = TRUE;

Upgrade starten

Der Update-Prozess kann nun per Browser unter der Adresse $URL/update.php gestartet werden. Der Browser-Tab darf dabei nicht geschlossen werden.

Nach erfolgreichen Upgrade muss die Upgrade-Möglichkeit per Browser wieder deaktiviert werden (siehe oben):

$update_free_access = FALSE;

Seite überprüfen

Nun kannst du überprüfen, ob sich deine Seite so verhält, wie du es erwartest. Dazu kannst du u.a. die Seite $URL?q=admin/reports/status aufrufen.

Anschließend den Wartungsmodus deaktivieren und ggf. Clean-URLs wieder aktivieren:

drush vset site_offline 0 && drush cc all & drush vset clean_url 1 -y && druch cc all

Drittmodule aktualisieren

Eventuell musst du benutzte Drittmodule aktualisieren. Dies ist mit drush pm-update recht einfach. Nach der Aktualisierung kannst du die Module mit Hilfe der erstellten Modulliste wieder aktivieren:

for module in `cat modules.list`; do drush -y en $module; done

Eventuell werden einige Module nicht für Drupal 7 verfügbar sein - entweder, weil ihre Funktionalität in der Kern integriert wurde, oder weil ihre Weiterentwicklung eingestellt wurde.

Image-Modul migrieren

Das alte Image-Modul wird nicht mehr unterstützt. Die entsprechenden Felder müssen migriert werden, was leider nicht automatisch erfolgt. Die Entwickler des alten Image-Moduls bieten ein Modul an, mit dem die Migration vorgenommen werden kann. Notwendig ist die Installation des Moduls Field-Convert.


Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.