Bisher war es so, dass mit der Veröffentlichung einer neuen [[http://drupal.org|Drupal]]-Version die Unterstützung für die Vor-Vor-Version endet. Mit der bevorstehenden [[https://www.drupal.org/drupal-8.0|Version 8]] wird dieser Prozess etwas angepasst, so dass es nun ein [[https://www.drupal.org/d6-lts-support|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 [[https://www.drupal.org/node/2121299|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 [[https://www.drupal.org/download|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 }}} = Alte Module aktualisieren = Einige Module (bspw. xmlsitemap) müssen in einer aktualisierten Drupal6-Version vorliegen, da ansonsten die Aktualisierung auf die jeweilige Drupal7-Version scheitert. Deshalb sollten die Module auf die aktuellste Druapl6-Version aktualisiert werden:{{{ drush pm-up}}} Anschließend und sicherheitshalber die Datenbank aktualisieren:{{{ drush updatedb}}} = 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 garland -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 [[https://www.drupal.org/project/drupal|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 && drush 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 [[https://www.drupal.org/project/image|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 [[http://drupal.org/project/field_convert|Field-Convert]]. * im Drupal-{{{sites/all/modules}}}-Verzeichnis wird das Verzeichnis {{{image_legacy}}} angelegt * dort die folgenden drei Dateien speichern:{{{ wget http://cgit.drupalcode.org/image/plain/image_legacy.field_convert.inc wget http://cgit.drupalcode.org/image/plain/image_legacy.info wget http://cgit.drupalcode.org/image/plain/image_legacy.module }}} * Modul aktivieren{{{ drush dl field_convert && drush en field_convert -y && drush en image_legacy -y }}} * nun kann über die Admin-Oberfläche die Konvertierung ausgeführt werden: $URL/?q=admin/content/field_convert * möglicherweise kommt es anschließend beim Bearbeiten von nodes zu einer Fehlermeldung: {{{required in field_default_form() (line 61 of /../drupal/modules/field/field.form.inc).}}} - [[https://www.drupal.org/node/952970|mögliche Lösung]] * falls image-styles aktiviert sind und Bilder nicht angezeigt werden, kann es helfen, clean urls abzuschalten.