Oxid 4.8.0 auf 6.x aktuellste Version

Hallo zusammen,

leider nutze ich noch eine ziemlich alte Version von Oxid (CE 4.8.0) und möchte nun endlich mal auf den neuesten Stand kommen.
Dass ein einfaches Update nicht möglich ist, ist mir schon klar, schon alleine wegen den Modulen die ich habe.

Ich frage mich nun, ob es Möglich ist, einen frischen 6.x Oxid Shop zu installieren, Module (wichtigste: tabsl sets, pl abomodul) zu installieren etc und dann die Produkte, Varianten, Bilder und Bestellungen aus dem 4.8er Shop in die Datenbank des neuen Shops zu importieren. Oder hat sich da an der Struktur etwas geändert bzw ist das nicht ohne weiteres möglich?

Wie würdet ihr hier vorgehen?

Viele Grüße,
Florian

warum das Rad neu erfinden, wenn es fertige Migration Scripts für Datenbank-Updates von OXID gibt?

Das klingt ja schonmal gut.
D.h. ich kann meine aktuelle “komplette” (Modul-Erweiterungen sicher ausgeschlossen, oder?) Datenbank meines 4,8er Shops auf die Datenbank eines 6.xer Shops migrieren?

Gibt es da eine detailiierte Anleitung zu wie ich vorgehen muss?

Jup, es gibt das Update von 4.10.x auf 6.x hier:
https://docs.oxid-esales.com/eshop/de/6.0/installation/update-installation/ab-4106536-auf-600-aktualisieren.html

Am besten aktualisiert man den Shop in einem Staging/Testsystem vorher und notiert sich abweichende Schritte.

Das Problem ist, ich habe einen 4.8er Shop, keinen 4.10.
Ab 4.10 scheint die ganze Angelegenheit deutlich einfacher zu sein.

Der Shop muss erst auf mind. 4.10.6 gebracht werden.
Sofern es sich um eine CE handelt, findest Du die Pakete hier:

Bei PE und EE müsstest Du bei Oxid anfragen.

Ich muss ja sagen, ich liebäugel sehr damit, einen neuen, aktuellen Shop aufzusetzen, Module zu installieren, alles optisch anzupassen und wenn alles getestet ist reibungslos Funktioniert, die Produkte und Bestellungen rüber zu ziehen und live zu gehen.

Hier mit mehreren Updates zu hantieren und damit irgendwelche Leichen zu begraben die bisher noch rumliegen … ich weiß nicht…

Erfahrungsgemäß sollte man den Standard Weg gehen oder eine Agentur damit beauftragen.

von 4.8 auf 6 sind schon mehre große Sprünge, es gibt wahrscheinlich auch nicht exakt die selben Module vom selben Hersteller für die V6.
Andererseits wirst du nicht so einfach die Daten aus der alten DB in die neue kopieren können, weil die Struktur anders ist.
Kopfschmerzen wirst du so oder so haben.

Ich werd mir die Tage mal die aktuelle Version ziehen, installieren und mir die Datenbankstruktur genau anschauen und vergleichen. Ich kann ja auch gleich mal was rüber migrieren zum testen ob es denn funktioniert oder welche Probleme auf mich zukommen.
Danke erstmal für eure Hilfe.

Hast Du inzwischen schon Erfolge erzielt? Ich muss auch gerade von 4.9 auf 6.x umziehen. Allerdings klemmt hier das Update auf 4.10 auch an allen Ecken. Ich hätte jetzt auch die leere 6er Version installiert und anschließend die Datenbank auf den richtigen Stand gebracht. Wenn ich richtig gesehen haben, werden - was die Datenbank betrifft - sowieso nur drei SQL-Dateien ausgeführt.
4.10.0.sql sollte die Anpassung auf 4.10 bringen,
migrate_ce_5_3_to_6_0.sql auf 6.0 und
migrate_ce_5_3_to_6_0_cleanup.sql den Rest bereinigen.

Das brauchst du ja dann auch gar nicht.

Du weißt aber schon, dass diese Information mich nicht wirklich weiter bringt, oder? In den Anleitungen zum Update steht immer, dass man von 4.9 auf 4.10 updaten muss und dann auf 6.x.

Aktueller Stand: Ich habe die Versionen 4.9, 4.10 und 6.1.2 installiert. Dann habe ich die alten Daten in eine Datenbank gespielt (Achtung: der 4.9er Shop mag noch kein PHP7) und in der config.inc.php einfach den Datenbanknamen ausgetauscht. Aufpassen: in den alten Daten sollte man bereits Zugriffsrechte als Admin haben! Version 4.9 war alles ok.
Gleiches Spiel mit 4.10: In der 4.9er Datenbank in PhpMyAdmin die 4.10.0.sql importiert und wieder in der config.inc.php (jetzt von der 4.10er Version) die Datenbank geändert. Läuft ebenfalls, außer, dass hier noch eine Warnung wegen den Dateizugriffsrechten ausgegeben wird.
Gleiches Spiel noch einmal von 4.10 auf die 6er Version. Die Datei migrate_ce_5_3_to_6_0.sql läuft sauber durch, allerdings ist momentan der Shop im Wartungsmodus. Darum muss ich mich als nächstes kümmern :-/

Wenn hier jemand eine Idee hat…

So, noch ein kleines Update. Das einlesen der alten Daten geht nur mit einer älteren PHP-Version sauber (ich habe hier 5.4.45 eingestellt). Bei der PHP-Version 7.1.22 traten tatsächlich fehler auf.

Beim ausführen der migrate_ce_5_3_to_6_0_cleanup.sql Datei gab es durch Doubletten in oxuser Probleme (obwohl die Spalte nicht als Unique gekennzeichnet ist). Doubletten habe ich gefunden:
SELECT oxusername, count(oxusername) FROM oxuser group by oxusername having(count(oxusername)>1)
und anschließend bereinigt - dann lief auch die Datei sauber durch.

Vielleicht hilft es ja jemandem.

Natürlich muss man die DB auf 4.10 aktualisieren, aber du hast beschrieben dass du das mit Hilfe des SQL-Statements aus dem Updatepaket machst, und nicht über die UpdateApp, deshalb habe ich mich gefragt wo es denn dann “an allen Ecken klemmen” kann.

Das empfohlene Update, mit Dateien kopieren und UpdateApp klemmte. Ob der Weg über eine Neuinstallation und anschließender Anpassung der Datenbank funktioniert, stand nirgends.
Fazit: es geht - inzwischen auch im Frontend. Noch einmal zusammenfassend:

Datenbank aus dem laufendem Shop 4.9.4 mit phpMyAdmin exportieren und auf einem anderen Server unter PHP 5.4.45 aufspielen (vermutlich gehen die Versionen PHP 5.3 und 5.4) damit das laufende System nicht beschädigt wird.

Die SQL-Dateien
4.10.0.sql Anpassung auf 4.10 und
migrate_ce_5_3_to_6_0.sql auf 6.0
aufspielen.

Datenbank auf Doubletten prüfen - bei mir war OXUSER problematisch:
SELECT oxusername, count(oxusername) FROM oxuser group by oxusername having(count(oxusername)>1)

Anschließend mit migrate_ce_5_3_to_6_0_cleanup.sql den Rest bereinigen.

In der Neuinstallation vom 6er Shop in der config.inc.php einfach den Datenbanknamen ausgetauschen und die PHP-Version auf 7 umstellen.

Bei mir gab es danach noch Probleme im Frontend, aber ich konnte mich ins Backend einloggen (Achtung: Anmeldedaten vom alten Shop verwenden!).
Im Backend gab es eine Fehlermeldung bei den Modulen, bei der man die falschen Einträge einfach löschen kann. Bei Themes dann noch ein Thema auswählen und das war’s dann - der Shop läuft.

Hoffe es hilf jemandem :wink:

Ja das funktioniert. Eine Neuinstallation von von 4.9 und 4.10 um die DB zwischendrin zu testen kann man machen, muss man aber nicht. Man kann auch direkt weitermachen mit den Updatescripts auf 6.0. Nach dem Einspielen der aktualisierten DB in den 6.x Shop sollte man noch

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

ausführen um die aktuellen Migrationen einzuspielen, und die Views aktualisieren.

1 Like