Howto Update auf CE 6.0

Hallo,

ich möchte hier mal mein kleines Howto zur Verfügung stellen für eine Migration eines CE 4.8.6 auf CE 6.0 - (Testshop).

Voraussetzung ist ein installierter Composer auf dem Server und WinSCP, mysqldumper und phpMyadmin.

Also zuerst sichern wir die alten Daten. Das heißt, wir sichern die Datenbank über mysqldumper, phpmyadmin usw.

Als nächsten habe ich in WinSCP/Befehle/ Putty aufgerufen und das komplette Verzeichnis meiner CE 4.8.6 kopiert - z.B:

cp -ar www/CE486/ www/CE48660/

Nun haben wir eine Kopie des Originalverzeichnisses der CE 4.8.6. Prinzipiell funktioniert das auch ohne Putty - WinSCP Rechte Maustaste “Ordner duplizieren”. Hat aber bei mir nicht immer funktioniert???

Nun können wir in Putty ein Projekt erstellen:

composer create-project --no-dev oxid-esales/oxideshop-project CE60 dev-b-6.0-ce

Composer erstellt nun in dem Verzeichnis ein Projekt mit dem Namen “CE60”. Wenn wir in einem anderen Verzeichnis installieren wollen, müssen wir uns durch die Verzeichnisse “hangeln”.

cd CE60

wechselt in das Verzeichnis “CE60” (Groß- und Kleinschreibung beachten)

cd ..

wechselt in das Verzeichnis darüber (wenn wir dazu vom Hoster die Berechtigung haben…).

Wenn der Vorgang korrekt durchläuft, sollte zum Schluss abgefragt werden, ob die temporären Daten gelöscht werden sollen, ich habe “y” gewählt und mit Enter bestätigt. Wenn die Erstellung abbricht - bei mir gab es 3 Gründe - habt ihr verschiedene Möglichkeiten:

Grund 1:
keine Berechtigung zum Erstellen von Ordnern - also ich habe 2 Zugangskennungen mit versch. Berechtigungen - hier hilft nur testen…
Ich habe z.B. nur im Ordner “www” die Berechtigung, Ordner zu erstellen…

Grund 2:
Speichermangel - also mein memory_limit von 256MB hat nicht gereicht…
HE hat mir eine “.bash_profile” erstellt, bzw. geändert, damit für den Prozess mehr Speicher zur Verfügung steht:

alias composer='/usr/bin/php5.6 -d memory_limit=1024M -d allow_url_fopen=1 -d suhosin.executor.include.whitelist="phar://,http://,https://" ~/bin/composer.phar'

Ob das genauso bei anderen Hostern klappt, kann ich nicht sagen. Der Support von HE sagt mir, ich solle eine lastarme Zeit nutzen, oder auf einen größeren Server updaten…
Manchmal gin mit composer gar nicht, manchmal liefen 3 Projekte problemlos???

Grund 3:
Composer bemängelte, das ein Verzeichnis schon besteht - also der Projektordner sollte nicht bestehen.

In dem zur Installation gewählten Verzeichnis sollten sich nun 2 Unterverzeichnisse und 2 Dateien befinden. Interessieren tut uns nur das “source” - Verzeichnis.

Im Browser können wir nun das “source” - Verzeichnis öffnen:

www.pfadzumProjekt/source/

Das alles richtig gelaufen ist sehen wir, wenn der ersten Schritt der Installationsroutine erscheint. Das überspringen wir mal - es sollte bekannt sein…

Alles richtig gemacht haben wir, wenn der Shop zum Schluss erscheint.

Der nächste Schritt - die alten Daten importieren.

Also die neu erstellt DB sichern - hilft ungemein, wenn etwas schief geht.

In die neue DB nun die DB der CE 4.8.6 importieren. Hier habe ich beim Import alle View-Tabellen (oxv_xxx) und die “oxconfig” ausgeschlossen. Da muss ich zwar die ganzen (Grund-) Einstellungen noch einmal machen, habe aber auch keine “weiße Seite” zum Schluss.

Nach dem erfolgreichen Import im phpMyadmin folgende SQLs ausführen:

Im Ordner “UPDATE_OXID_ESHOP_CE_V.4.8.x_TO_V.4.10.6\updateApp\updates\sql” die

4.9.0.sql
4.10.0.sql
update_version.sql 

ausführen - also “Importieren”.

Sollten hier Fehlermeldungen auftreten, habe ich die SQL-Dateien im Editor geöffnet, alles markiert und über SQL in phpMyadmin importiert. Da kann ich die Zeilen, die Fehlermeldungen bringen, raus löschen und weiter importieren.

Anschließend sind die 2 SQLs (vorher herunter geladen) in phpMyadmin nacheinander auszuführen:

migrate_ce_5_3_to_6_0.sql
migrate_ce_5_3_to_6_0_cleanup.sql 

Zum Schluss brauchen wir noch einmal WinSCP. Hier müssen wir den Ordner unseres Projektes “CE60” auswählen. Unter Befehle finden wir das “Terminal”. Hier können wir folgende Befehle nacheinander eingeben:

vendor/bin/oe-eshop-db_migrate migrations:migrate
vendor/bin/oe-eshop-db_views_generate 

Nach dem 1. Befehl erschien bei mir die Meldung, das nichts zu migrieren ist. Wenn beim 2. keine Fehlermeldung erscheint, sollten die Views erstellt wurden sein. Das geht auch mit Putty. Wir müssen uns zur Ausführung der Scripte aber in den Projektordner “CE60” hangeln.

Sollten wir noch im Shop-Backend eingeloggt sein, würde ich in den Einstellungen noch einmal die Views aktualisieren. Wir sollten hierbei aus dem Backend heraus geworfen werden und müssen uns nun mit den Zugangsdaten der CE 4.8.6 wieder einloggen…

Bei mir funktionierte es ohne den tmp/smarty-Ordner Inhalt (ohne .htaccess) zu löschen - bei Fehlern wäre aber das meine erste Wahl.

Nun können wir den Shop aufrufen, bzw. aktualisieren. Wenn alles richtig gelaufen ist, sollten wir grundsätzlich den Aufbau der alten CE 4.8.6, allerdings alles mit nopic-Bildern sehen. Im Backend müssten dann auch die Artikel der CE 4.8.6 zu sehen sein.

In WinSCP gehen wir nun in den Ordner “CE60/source/out/” und nennen die Ordner um:

  • pictures in pictures60
  • media in media60
  • downloades in downloades60

Nun gehen wir in den Ordner "CE48660/out/ und verschieben oder duplizieren die Ordner

  • pictures
  • media
  • downloades

in den Ordner “CE60/source/out/”. Wenn wir jetzt den Shop im Browser aktualisieren, sollte alle Bilder richtig erscheinen. Prinzipiell wäre das Wichtigste geschafft.

Was wäre noch zu erledigen?

1. Alle Einstellungen überprüfen. Bei mir wurde z.B. der Shopname nicht übernommen...
2. Wenn alles funktioniert, die Ordner pictures60, media60 und downloades60 löschen
3. Den Ordner CE48660 löschen.
4. Module neu installieren
5. ggf. Template anpassen

Also bei mir funktionierte die oben genannte Vorgehensweise bei 3 Versuchen von zwei mal bei einer CE 4.8.6 ohne Probleme (ca. 30 Minuten je Projekt).

Bei einer CE 4.10.6 brauchte ich 3 Anläufe. Hier brauchen wir die die Daten aus der “updateApp” natürlich nicht.

Bei der CE 4.10.6 liefen die migrate_ce_5_3_to_6_0.sql und oder die migrate_ce_5_3_to_6_0_cleanup.sql nicht durch (doppelte Index). Hier half mir dann, noch einmal das Backup der DB der CE 4.10.0 einzuspielen, die SQLs im Editor zu öffnen und über “SQL” in die DB einzuspielen.

Dabei war war auch einmal die Meldung, dass keinen DB-Views erstellt werden konnten. Hier habe ich dann fest gestellt, dass eine Tabelle nicht importiert wurden ist…

Viel Spaß

Gert

edit1:
Wurden bei mir bei allen 3 Versuchen der Inhalt der Spalte “OXTAG” "in der Tabelle “oxartextends” nicht nach “OETAGS” übertragen.
Also habe ich die Tabelle “oxartextends” der CE4.8.6 in phpMyadmin exportiert und im Editor “OXTAGS” durch “OETAGS” ersetzt.
Die Tabelle "OETAGS) der CE6.0 habe ich als Datensicherung in die “OETAGS60” kopiert (Löschen wenn alles funktioniert). Anschließend die “OETAGS” gelehrt und die geänderte sql-Datei importiert.

edit2:
Nachdem bei mir die Speicherfehler (Speichermangel) extrem zugenommen haben, habe ich nach Lösungen gesucht.

HE hatte mir freundlicherweise schon deshalb eine “.bash_profile”

alias composer='/usr/bin/php5.6 -d memory_limit=1024M -d allow_url_fopen=1 -d suhosin.executor.include.whitelist="phar://,http://,https://" ~/bin/composer.phar'

installiert. Nachdem ich diese auf

alias composer='/usr/bin/php7.0 -d memory_limit=4096M -d allow_url_fopen=1 -d suhosin.executor.include.whitelist="phar://,http://,https://" ~/bin/composer.phar'

geädert habe, liefen alle composer-Installationen ohne Speicherfehler. Ich bin gespannt, ob das anhält…

3 Likes