Migration von CE 4.10.8 auf CE 6.4.1

Wir verwenden die CE 4.10.8 und möchten gerne auf CE 6.4.1 hoch. Wir haben bereits eine Grundinstallation einer Testumgebung v. CE 6.4.1 installiert. Gibt es eine Anleitung wie man die Daten der CE 4.10.8 auf die CE 6.4.1 migriert?

ich würde es per phpMyAdmin machen aufpassen mit der oxshopid

Dies wären mehrere Datenbank Migration Schritte und daher mehrere Anleitungen

Wenn man Module mit migrieren möchte, dann muss man noch den Update-Schritt von 6.1 auf 6.2 durchführen, dies würde die Modul Konfigurationen betreffen Update from 6.1.x to 6.2.0 — OXID eShop 6.2 | User documentation (Module vorher 2 Zustände, ab 6.2 haben Module 4 Zustände)

Tipp: Einen guten Überblick bietet Erste Schritte für Anwender, Händler und Entwickler

Hinweis: Aktuell ist mittlerweile das Release 6.4.2 und im 3. Quartal 2022 ist laut Release Plan mit der 6.5er Serie zu rechnen. Da die 6.4er Serie ab dem 3. Quartal 2022 bereits Legacy ist.

Wir sind gezwungen das Upgrade zeitnah bis Mitte Juli 2022 durchzuführen, da wir sonst keinen Paypal Rechnungskauf mehr durchführen können und auch unsere bisherigen Paypal Konditionen verlieren. Diese werden bei einem Wechsel zu Paypal Checkout für ein weiteres Jahr beibehalten.

Ah okay, würde dann in diesem Fall ausreichen auf 6.4.2 zu aktualisieren. Die Migration auf 6.5er Serie wird wahrscheinlich noch nach Releasedatum ca. 6 Monate dauern bis alle Modul Hersteller nachziehen. Auf die 6.4er Serie zu migrieren wäre daher ein wichtiger Meilenstein.

Update: Bei der Zeitnot wäre auch denkbar zuerst auf die 6.1er Serie zu aktualisieren, weil das neue PayPal Checkout Modul noch einen Branch bis 6.1er Serie zur Verfügung stellt siehe unter GitHub - OXID-eSales/paypal-module

Ich möchte gerne nochmal den Datenstand aus meiner letzten Datensicherung auf den Server spielen.
Ich habe die Datensicherung auf dem Server unter Linux entpackt und ich möchte nun alle Dateien und Ordner aus dem Sicherungsordner in das Hauptverzeichnis des Servers kopieren. Wie schreibt man den Befehl
cp -r /Quellordner/ /Zielordner/
wenn man statt /Zielordner/ ins Hauptverzeichnis kopieren möchte da dort alle vorher gesicherten Daten hingehören?

Du meinst wahrscheinlich vom Quellordner rauszuspringen.

Es gibt zwei Optionen

  1. Du gibst den absoluten Pfad des Zielordners an
  2. Du springst über ../ so viele Ebene höher wie Du benötigst z.B. ../../Zielordner

Ich bin auch dabei, mich in die Sachen der Migration einzulesen. Dabei haben deine zwei Links ein wenig geholfen. Ich wollte nicht ein extra Thread machen. Falls das doch gewünscht ist, bitte kurz Bescheid geben.

Meine Voraussetzungen sind die gleiche, wie von Dirk_S. Ich möchte Benutzer, Artikel und Bestellungen migrieren. In einigen anderen Thread wurde immer nur etwas von Grundeinstellungen geschrieben. Beinhaltet diese Anleitung die 3 genannten Bereiche?

Würde ein Migrieren von CE 4.10.8 direkt auf CE 6.4 funktionieren oder brauch ich diesen Versuch erst gar nicht starten? Problem sehe ich, wenn die Liveschaltung ansteht, kann ich nicht erst ein Zwischenschritt auf eine in einer älteren CE 6.x-Version machen. Sondern ich würde gern am Tag der Liveschaltung auf meinem Testserver alles fertig geupgradet haben. So dass ich den Live-Oxidshop deaktiviere, migriere auf Dev-Server und dann den Dev-Stand auf Live kopiere (files/Database).

Ja, die Standard Update Anleitungen beinhalten genau dies, dass die Benutzer, Artikel und Bestellungen migriert werden.

Dies muss man im Einzelfall bewerten welche Schritte erforderlich. Aber aus meiner Sicht ohne Zwischenschritt auf 6.0 bzw. 6.1 wird es nicht gehen um dann anschließend auf 6.2, 6.3 oder 6.4 zu aktualisieren.

Im Kern geht es darum aus den obigen Anleitungsschritten nur die Schritte für die Datenbank Migration auszuführen.

Die 6.0 Installation ist im Prinzip eine frische Installation und man verknüpft dies mit der alten Datenbank des 4.10er Shops um die Datenbank zu migrieren. Dieser Schritt ist ein MUSS Kriterium.

Haltet Eure Shop-Umgebungen aktuell bzw. etabliert ein Prozess um regelmäßige Updates einzuspielen!

Würde dies funktionieren, wenn ich ein CE 6.1 auf einer anderen Instanz aufbaue?

Das heißt:

  1. CE 4.10.8 Datenbank abspeichern.
  2. Diese auf ein frisch installiertes (keine Modules, keine eigenen Themes, usw.) CE 6.1 migrieren - gemäß Anleitung.
  3. CE 6.1 Datenbank abspeichern.
  4. Diese auf ein anderes und fertiges (Module, Themes, usw. schon alle auf dem neuesten Stand) CE 6.4 migrieren - gemäß Anleitung.

Ja, deine 4. Schritte sind in verkürzter Form die detailreiche verlinkte Anleitung.

Für die Migration auf den 6er ist es erforderlich einen 6er Shop zu installieren. Selber würde ich mir 6.0er Serie installieren, aber vielleicht geht es auch direkt mit eine 6.4er Serie. Aber dies müsste man ausprobieren.

Aber auch mit 6.4er Serie zu Beginn müssen für die Datenbank die Migrationsschritte aus der 1. Anleitung durchgeführt werden bevor man die Migrations für Standard Updates innerhalb der 6er Serien verwenden kann.

Beispiel:

  1. 6.0er Serie “normal” mit Composer installieren
  2. 6er Shop an alte Datenbank von 4.10er Serie verknüpfen (wie in Migration Anleitung)
  3. Datenbank Migration durchführen
  4. 6.0er Serie auf 6.4 Serie aktualiseren (Dateiebene)
  5. Konsolen Befehl für Standard Datenbank Migration innerhalb 6er Serien ausführen

Tipp: Einmal in Ruhe beide Anleitungen als ganzes durchlesen und durchdenken.

1 Like

Leider bekomme ich nach dem Migrationsupdate mein CE 6.0 nicht mehr ans Laufen.

  1. Ich habe die Datenbank von v4.10 lokal als sql-Datei abgespeichert.
  2. Ich habe sie in eine Datenbank (kein CMS oder irgendetwas dahinter) importiert.
  3. Dann habe ich die zwei Migrationsskripts auf der DB von 2. durchführen lassen ( migrate_ce_5_3_to_6_0.sql und migrate_ce_5_3_to_6_0_cleanup.sql
  4. Ich habe dann die DB lokal als sql-Datei abgespeichert.
  5. Danach habe die die Datenbank meines CE 6.0 (Neuinstallation) gelöscht und dafür die Datei aus Punkt 4 importiert.
  6. Ich habe in meinem CE 6.0 die zwei Migrationsschritte ausgeführt (vendor/bin/oe-eshop-db_migrate migrations:migrate und den darunter). Die Meldungen sahen gut aus. Lief erfolgreich durch.
  7. Danach versuchte ich das Frontend CE 6.0 aufzurufen. Jedoch bekomme ich die Wartungsseite. In den Logs steht: [20 Jun 11:54:03.043133 2022] [uncaught error] [type E_PARSE] [file /var/www/html/vendor/laminas/laminas-zendframework-bridge/src/Autoloader.php] [line 27] [code ] [message syntax error, unexpected 'const' (T_CONST), expecting variable (T_VARIABLE)]

Weiß jemand, wie ich hier weiter komme?

Ich würde erstmal prüfen welche Version von laminas/laminas-zendframework-bridge zum Einsatz kommt und dann prüfen über welche Abhängigkeit dieses Packages in den Shop rein kommt.

Die Fehlermeldung deutet daraufhin, dass die Package Version und PHP-Version nicht mit einander kompatibel sind.

Ok. Ich hatte gefragt, weil ich nur CE 6.0 installiert habe. Keine zusätzlichen Erweiterungen oder Themes. Kein Content. Nichts. Der Shop lief so auch. Nach der Migration von der DB aus CE v4.10 nicht mehr.

Anscheinend, so gehe ich von deiner Aussage aus, wird etwas aus der DB vom Shop v4.10 geladen. Oder?

Liegt wohl eher an der php-Version. Was läuft denn bei Dir?

https://docs.oxid-esales.com/eshop/en/latest/installation/new-installation/server-and-system-requirements.html

Bei der CE 6.0 habe ich PHP v5.6 und PHP v7.0 ausprobiert, so stand es auch bei den Anforderungen, das beide möglich sind. Mit beiden lief der Shop vor der Migration. Danach nicht mehr.

Bei der zweiten Migration von 6.1 auf höhere Serie wird mit

composer update --no-plugins --no-scripts --no-dev
composer update --no-dev
rm -rf source/tmp/*

Wird das vendor Verzeichnis aktualisiert und Cache gelöscht.

Quelle: Standard update — OXID eShop 6.2 | User documentation

Beim ganzen Vorgehen muss man sich immer ganz genau jedem Schritt bewusst sein, weil die Fehlerquellen dort vielfältig.

Z.B. kann es von der Composer Version in der CLI, PHP Version in CLI und dem Cache löschen viele Ansatzpunkte geben was dort schief läuft.

Gib das mal in G00gle ein. In composer kannst auch die php-Version bestimmen.

Ich habe meinen Fehler gefunden.

Ich habe die ddev-config vom CE 6.4-System genommen. Dort war php 7.4 eingestellt und composer v2.3.x

Nachdem ich CE 6.0.x neu installiert habe, hatte ich nämlich den gleichen Fehler erhalten. Offenbar habe ich die Funktionialität nach der Installation von CE 6.0.x nicht getestet.

Schluss endlich ist es bei ddev nicht möglich, wenn man eine PHP Version über 7.2 nutzt, die composer-Version auf 1.10.x zu setzen. Dies muss man direkt in der config.yaml mitgeben → composer_version: 1.10.26

CE 6.0.x läuft und ich wiederhole nun die Migration.

1 Like

Leider nicht erfolgreich. Nach der Migration habe ich den tmp-Ordner gelöscht und nun lädt die Seite in Dauerschleife und nach Minuten geht es in ein 500er-Fehler. In den Logs steht nichts. :frowning:

Setze ich wieder die ursprünglichen DB-Daten der CE 6.0 ein, funktioniert der Shop auch wieder.

 Oxid Migrations CE                    
                                                          

Migrating up to 20180228160418 from 20171018144650

  ++ migrating 20180214152228

     -> INSERT INTO `oxconfig` (`OXID`, `OXSHOPID`, `OXMODULE`, `OXVARNAME`, `OXVARTYPE`, `OXVARVALUE`)
                            SELECT SUBSTRING(md5(uuid_short()), 1, 32),  `OXID`, '', 'blAllowSuggestArticle', 'bool', ENCODE('1', 'fq45QS09_fqyx09239QQ') FROM oxshops
                            WHERE NOT EXISTS (
                            SELECT `OXVARNAME` FROM `oxconfig` WHERE `OXVARNAME` = 'blAllowSuggestArticle'
        )

  ++ migrated (0.25s)

  ++ migrating 20180228160418

     -> ALTER TABLE `oxconfig` CHANGE COLUMN `OXVARVALUE` `OXVARVALUE` MEDIUMBLOB NOT NULL COMMENT 'Variable value' AFTER `OXVARTYPE`;

  ++ migrated (0.02s)

  ------------------------

  ++ finished in 0.27s
  ++ 2 migrations executed
  ++ 2 sql queries