Von 6.1.x auf 6.2.0 aktualisieren

Dieses Dokument beschreibt das Update von OXID eShop 6.1.0 und höher auf OXID eShop 6.2.0. Es unterscheidet sich vor allem durch die Übernahme der Modulkonfigurationen aus der Datenbank von einem Standard-Update.

schritt Aktualisierung des Shops

  1. In der Datei composer.json, die sich im Hauptverzeichnis des Shops befindet, müssen Version geändert werden. Das betrifft die Sektion „require“ und „require-dev“. Beispiel für einen OXID eShop Community Edition 6.2.0:
"require": {
   "oxid-esales/oxideshop-metapackage-ce": "v6.2.0"
},
"require-dev": {
   "oxid-esales/testing-library": "^v7.0.1",
   "incenteev/composer-parameter-handler": "^v2.0.0",
   "oxid-esales/oxideshop-ide-helper": "^v3.1.2",
   "oxid-esales/azure-theme": "^v1.4.2"
},

Sie finden die Werte für Ihre Shop-Edition im jeweiligen Repository des OXID eShop Projektes:

  1. Leeren Sie das Verzeichnis mit den temporären Dateien des Shops, indem Sie beispielsweise eine Shell im Hauptverzeichnis des Shops aufrufen und folgendes Kommando eingeben:
rm -rf source/tmp/*
  1. Führen Sie in der Shell den nachstehenden Composer-Befehl aus, um die Abhängigkeiten zu aktualisieren. Der Parameter --no-dev wird angegeben, wenn die entwicklungsbezogenen Dateien nicht benötigt werden.
composer update --no-plugins --no-scripts --no-dev
  1. Kopieren Sie nun die Datei overridablefunctions.php vom Verzeichnis /vendor des Shops in das Verzeichnis /source.
cp vendor/oxid-esales/oxideshop-ce/source/overridablefunctions.php source/
  1. Mit einem zweiten Composer-Befehl werden alle Scripts ausgeführt, um die neue Compilation zu beziehen. Für Shopdateien, Themes und Module muss jeweils bestätigt werden, dass das Update bestehende Dateien überschreibt. Haben Sie eigene Module mit "type": "path" in Ihre Datei composer.json eingebunden, beantworten Sie die Nachfrage zum Überschreiben bitte mit Nein.
composer update --no-dev
  1. Der dritte und letzte Composer-Befehl führt die Migration der Datenbank aus.
vendor/bin/oe-eshop-db_migrate migrations:migrate

schritt Aktualisierung der Modulkonfigurationen

In diesem Arbeitsschritt werden Einstellungen und Aktivierungsstatus der zum Shop gehörenden Module aus der Datenbank in Konfigurationsdateien *.yaml transferiert.

  1. Mit den nachfolgenden Composer-Kommandos, welche im Hauptverzeichnis des Shops aufgerufen werden, installieren Sie die OXID eShop update component.
composer require --no-update oxid-esales/oxideshop-update-component:"^1.0"
composer update --no-dev --no-interaction
  1. Für alle Module, die sich im Verzeichnis source/modules befinden, wird eine Standardkonfiguration erstellt. Dafür wird die neue OXID eShop Console mit folgendem Kommando aufgerufen:
vendor/bin/oe-console oe:oxideshop-update-component:install-all-modules
  1. Die vorhandenen Moduldaten (Moduleinstellungen, Klassenerweiterungsketten, Aktivierungsstatus) werden aus der Datenbank in die Konfigurationsdateien *.yaml übertragen.
vendor/bin/oe-console oe:oxideshop-update-component:transfer-module-data

Nach diesem Arbeitsschritt sollte in der Konfigurationsdatei aller zuvor aktiven Module die Option configured = true sein. Die Konfigurationsdatei enthält jetzt auch die Moduleinstellungen. Es sind die selben, die im Administrationsbereich beim Modul festgelegt wurden.

  1. Um Datenredundanz und Probleme bei der Aktivierung von Modulen zu vermeiden, werden deren Status und Einstellungen aus der Datenbank entfernt.
vendor/bin/oe-console oe:oxideshop-update-component:delete-module-data-from-database
  1. Alle Module, die zuvor aktiv waren, werden aktiviert und die Moduleinstellungen wiederhergestellt.
vendor/bin/oe-console oe:module:apply-configuration
  1. Deinstallieren Sie die OXID eShop update component.
composer remove --no-update oxid-esales/oxideshop-update-component
composer update --no-dev --no-interaction

schritt Alte Dateien entfernen

Die Datei xd_receiver.htm aus dem Verzeichnis /source wird nicht mehr benötigt und sollte gelöscht werden.


Fehlersuche und -behebung

Hinweise auf mögliche Probleme bei der Übernahme von Status und Einstellungen der Module finden sich im Dokument Update from 6.1.x to 6.2.0 der englischsprachigen Entwicklerdokumentation.