Drupal - Upgrade 6 >> 7 Teil 3

Bild des Benutzers Regina Oswald

Im dritten Teil behandeln wir die Bilder-Problematik, sonstige händische Änderungen und nennen ein paar Punkte für die Livestellung. 

Hier noch mal das komplette Inhaltsverzeichnis:

       -- Drupal - Upgrade 6 > 7  Teil 1 (Rolf Schosser) --

  1. Aufwandsschätzung

  2. Vorbereitung

  3. Drush Upgrade

    -- Drupal - Upgrade 6 > 7  Teil 2 (Regina Oswald)  --

  4. Einzelne Module ergänzen

  5. Views aktualisieren

  6. View-Templates, template.php und Module ändern

    -- Drupal - Upgrade 6 > 7  Teil 3 (Regina Oswald)  --

  7. Bilder nachziehen

  8. Sonstige Feinheiten

  9. Livestellung

 

7. Bilder nachziehen

Bildstyles aus D6 ( Image_cache_presets ) wurden in Drupal 7 händisch angelegt.

Da die Felder für die Bilder beim Drush-Upgrade nicht übernommen wurden, wurden folglich auch die Bild-Infos / Node nicht übernommen.
Da es zu viele Nodes sind, um die Änderungen händisch zu machen, wurde auf der Drupal-6-Hilfs-Installation eine View für jeden Node-Typ eingerichtet.
Hier wird nur die Node-ID und die komplette URL auf das Bild (Quelle) benötigt.
Das Ergebnis der View wird als CSV-Datei im utf-8-Format abgespeichert.
Im nächsten Schritt wird auf der Ziel-Version das Modul Feeds importiert und ein Import für diese beiden Felder angelegt.

Upgrade Drupal 6 auf Drupal 7 Bilderimport mit Feeds

Der erste Migrations-Versuch ging schief, weil die Bilder pro Node in Drupal teilweise mit gleichem Bildnamen mehrfach verwendet werden und diese doppelten Einträge unter Drupal 7 zu Unique-Constraint-Verletzungen führen.
Erst nachdem im Inhaltstyp für die Bilder die path- Settings ohne retroactive oder aktive Update gesetzt wurden klappte der Import.
Feeds import laufen lassen, dann retroactive Update. Die Einstellung "Retroactive Update" wird einmal ausgeführt und dann deaktiviert.
Dennoch wurden einige Bilder nicht korrekt übernommen.
Auf beiden Installationen (Drupal 6-Quelle und Drupal 7 Ziel) wurden Verwaltungs-Views für die Node-Types mit Bildern eingerichtet und abgeglichen, ob fehlende Bilder in der Zielversion bereits unter Drupal 6 gefehlt haben. Bei anderen Versionen wurden die Bilder händisch nachgezogen.

8. Sonstige Feinheiten

  • In D6 gibt es bei der Bearbeitung der Newsletterausgabe einen Reiter Duplizieren.
    Dieser befindet sich nun unter Bearbeiten ohne Extra Reiter. Betrifft nur das Modul Node clone .

  • Fehlermeldung Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration
    Hierfür wird an mehreren Stellen im Netz empfohlen, "allow_url_fopen" auf Open zu stellen.
    Da das aber aus Sicherheitsgründen nicht erwünscht ist, wurde weiter recherchiert und wir haben folgendes gefunden:
    Der Fehler kommt aus der locale.inc und ist ein Bug im Drupal Core.
    Thead hier: https://www.drupal.org/node/1814980
    Folgender Patch wurde eingebaut:
    https://www.drupal.org/files/locale_drupal_http_request-1814980-17.patch

  • Auf der Startseite wird der Titel nicht richtig übesetzt.
    gelöst mit der Anleitung hier:
    http://www.drupaltutorials.de/2012/12/05/drupal-mehrsprachige-webseiten-...
    EINE STARTSEITE FÜR JEDE SPRACHE
    Dazu das Modul Variable Translations + abhängige Module installiert und bei Webseite Einstellungen Variablen für Sprachen ergänzt.

    Upgrade Drupal 6 auf Drupal 7 Variables für Website-Informationen

  • Beim Aufruf der Inhalte-Hinzufügen Seite kam die Fehlermeldung:
    Meldung "Sie haben noch keinen Inhaltstyp angelegt"
    Auch fehlten die Untermenüpunkte die das Anlegen neuer Inhalte für bestimmte Inhaltstypen erlauben.
    Nach unseren Recherchen kommt es zu diesem Problem, wenn der Link "Neuen Inhalt anlegen" nicht im Default-Navigationsmenü enthalten ist.
    Dieses Navigationsmenü wurde allerdings von den Vorgängern unter Drupal 6 für benutzerdefinierte Links zweckentfremdet.
    Wir benutzten den im Netz gefundenen Workaround mit einem kleinen Modul und einem Hook in der Datei template.php zur Wiederherstellung des Menüpunkt im Admin-Menü und zum Hinzufügen aller Untermenüs / Inhaltstyp.

  • Deutsches Sprachenpaket mußte nachinstalliert werden nach Drush-Upgrade

  • Fehlermeldung Notice: Undefined index: distribution_name in drupal_install_profile_distribution_name() (Zeile 207 von ...\includes\install.inc)
    Das lag daran, daß ursprünglich die Deutsche Drupal-Version von drupalcenter installiert wurde.
    Wir haben aber aktuelle Drupal 7 Version von drupal.org verwendet.
    Dies wurde korrigiert, womit die Fehlermeldung verschwand.

  • Das Tokensystem von Drupal 7 ist komplett anders, als unter Drupal 6.
    Bei unserer Version hat das dazu geführt, daß die Bestätigungsmails für Newsletter-Anmeldung (Simple-News) nicht mehr funktionieren.
    Außerdem haben die Pattern für die URL-Aliase nicht mehr gestimmt und es wurden keine automatischen Aliase mehr angelegt.

  • Simplenews und entsprechende Sub-Module mußten komplett neu bearbeitet werden.
    Die Templates und Eigenprogrammierungen mußten quasi neu geschrieben werden.
    Die ausführliche Beschreibung würde hier zu weit führen und sind zu individuell für einen Blog-Beitrag.

9. Livestellung

Da das Upgrade mit allen händischen Arbeiten und Fehlerbeseitigungen einen längeren Zeitraum benötigt, wird natürlich im Hintergrund auf der Drupal 6 Live-Version weiter Inhalt eingestellt.

D.h. Zum Zeitpunkt der Liverstellung ist die Kopie, die für das Drush-Upgrade verwendet wurde, schon wieder veraltet.

Nun gibt es zwei Möglichkeiten:

Es wird ein genauer Ablaufplan erstellt und ein Zeitpunkt definiert, zu dem auf dem Livesystem keine Änderungen mehr gemacht werden dürfen.
Dann wird noch mal ein Backup gezogen und alle Schritte inklusive Drush-Upgrade + alle Feinheiten nach gezogen.
Im aktuellen Fall wäre das zu viel Aufwand gewesen.
D.h. wir haben die Inhalte, die auf dem Livesystem vorgenommen wurden, parallel per Hand in der Drupal 7 Zielversion mit gezogen.

In der Phase kurz vor der endgültigen Livestellung der Drupal 7 Version hat uns der Kunde dabei unterstützt und auf diese Weise gleich die evt. kleinen Änderungen im Handling kennen gelernt und auch auf volle Funktionsfähigkeit getestet.

Am Stichtag wurde dann das Livesystem für einige Stunden in Wartungsmodus versetzt um evt. Newsletter-Anmeldungen zu unterbinden. In der Zeit wurden dann letzte Aktualisierungen auf User ect. vorgenommen.

Je mehr Interaktion mit Usern möglich ist und Inhalte von unterschiedlichen User (evt. Auch von Gästen?), desto höher wird hier der Aufwand.

Die genaue Strategie kann nur von Fall zu Fall in Absprache mit dem Kunden entschieden werden.
Wichtig ist im Auge zu behalten, daß an der Stelle durch Inhalts-Aktualisierungen immer ein Zusatzaufwand ensteht, der gerne unterschätzt wird.