Probleme bei Update COMMUNITY EDITION 4.10.8 nach 6.1

Hi,
ich bin nach der Anleitung vorgegangen. Habe aus OXID_UTF8UPDATE_CE_4.10.0.zip folgende Dinge ausgeführt:
In phpMyAdmin: utf8_CE.sql
Dann update.php
Zuerst blieb es bei

  • done setCharset,
  • going to backupConfigData…
    stehen.

Ein wieder ausführen ging nicht. Dann habe ich hier im Forum gefunden dass ich folgendes in function backupConfigData() in der Update.php einfügen muss um es wiederholbar zu machen:
$sQ = “DELETE FOM oxconfig WHERE OXID like ‘@%’”;
oxDb::getDb()->execute( $sQ );

Das habe ich getan. Nun endet ein Update mit:
Fatal error : in …/oxid_eshop/core/adodblite/adodb-exceptions.inc.php on line 84

Hat jemand Hilfe wie ich den Fehler beheben kann?
Habe schon den $this->dbType von mysql nach mysqli geändert und von PHP 5.6 nach 7.1 gewechselt. Das hat leider nichts geholfen.

Der alte Webshop läuft immer noch. Bin mir auch nicht sicher ob ich dieses UTF8 Update überhaupt brauche da ich denke ich bin schon auf UTF8.

Ich habe dann parallel mit composer eine 6.1.4 installiert und die config.php.inc rüber gezogen. Leider lässt dieser sich nicht gegen meine Datenbank starten.
Es kommt nur:
Maintenance mode, please try again later.
Wartungsarbeiten, bitte versuchen Sie es später noch einmal.

Das Exceptionlog zeigt folgenden Fehler:
[2019-08-21 14:39:16] OXID Logger.ERROR: Unable to load shop config values from database ["[object] (OxidEsales\Eshop\Core\Exception\DatabaseException(code: 0): Unable to load shop config values from database at /www/htdocs/w00b2c0e/concrete7/eigeneseiten/oxid_eshop_6_1/vendor/oxid-esales/oxideshop-ce/source/Core/Config.php:386, Exception(code: 0): at /www/htdocs/w00b2c0e/concrete7/eigeneseiten/oxid_eshop_6_1/vendor/oxid-esales/oxideshop-ce/source/Core/Config.php:389)\n[stacktrace]\n#0 /www/htdocs/w00b2c0e/concrete7/eigeneseiten/oxid_eshop_6_1/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(554): OxidEsales\EshopCommunity\Core\Config->init()\n#1 /www/htdocs/w00b2c0e/concrete7/eigeneseiten/oxid_eshop_6_1/vendor/oxid-esales/oxideshop-ce/source/Core/ShopControl.php(131): OxidEsales\EshopCommunity\Core\ShopControl->_runOnce()\n#2 /www/htdocs/w00b2c0e/concrete7/eigeneseiten/oxid_eshop_6_1/vendor/oxid-esales/oxideshop-ce/source/Core/Oxid.php(26): OxidEsales\EshopCommunity\Core\ShopControl->start()\n#3 /www/htdocs/w00b2c0e/concrete7/eigeneseiten/oxid_eshop_6_1/source/index.php(15): OxidEsales\EshopCommunity\Core\Oxid::run()\n#4 {main}\n"] []

Wie komme ich weiter?
Sollte ich zuerst das update.php ausführen? Wie komme ich über den Fehler dort hinweg?

Ich hoffe jemand kann mir hier den richtigen Tip geben.

Danke und Gruß,
Stefan

Hallo Stefan,

bei dem von dir genannten Fehler ist (so glaube ich) wohl etwas in der Datenbank durcheinandergekommen…
Als erstes solltest du in der “config.inc.php” des neuen Shops NUR die Zugangsdaten zur Datenbank eintragen und alles andere so lassen wie es nach der Neuinstallation der OXID 6.1.x ist. Mit dem “drüberkopieren” deiner alten config.inc.php kann das gar nicht funktionieren da du alle Pfade zur neuen Installation mit denen der alten überschreibst…

Ich habe bis jetzt updates von 4.10.x auf 6.1.x immer folgendermaßen gemacht:

  1. eine komplett neue Instanz von Oxid eshop 6 mithilfe von composer bereitstellen (ist hier beschrieben).
    Nach diesem Schritt ist “nur” noch das Update der Datenbank übrig.

  2. dump der DB von “altem” Shop erstellen (ohne Tabellen mit dem “oxv_” Prefix.

  3. den erstellten Dump der “alten” DB mit z.B. phpmyadmin auf den neuen Server kopieren bzw. wenn beide Datenbanken am selben Server sind UND über eine phpmyadmin Instanz erreichbar, die alte DB in phpmyadmin kopieren. (danach die “oxv_” Tabellen in der kopierten DB löschen).

  4. Sicherheitshalber alle Module, die aktiviert waren in der kopierten DB deaktivieren:

delete from oxconfig where oxvarname in (
‘aDisabledModules’,
‘aLegacyModules’,
‘aModuleFiles’,
‘aModulePaths’,
‘aModules’,
‘aModuleTemplates’
);

  1. in der neu eingespielten DB, wie beschrieben die SQL-Scripts ausführen
    Hier der Link
    Etwas weiter unten sind die SQL-Scripts zum downloaden (Einfach mit phpmyadmin unter importieren in die neue Datenbank einspielen).

  2. Danach noch die 2 Befehle unter 3. und 4. in der Konsole eingeben
    Hier der Link

  3. in der “config.inc.php” der neuen Shopinstallation den Namen der neuen Datenbank und das Passwort eintragen. ACHTUNG: die config.inc.php hat nach der Installation nur Leseberechtigungen gesetzt (444) zum Ändern der Datei auf 644 umstellen und danach wieder zurück auf 444.

Das wichtigste ist, NIEMALS die originale Datenbank anzufassen - immer eine Kopie erstellen und damit arbeiten.
Falls nämlich was schiefläuft, kannst du immer wieder eine Kopie des originales machen.

1 Like

Hi Markus,

vielen Dank für die ausführliche Beschreibung.
Ich hatte natürlich nur die DB der config.inc.php übernommen und nicht die ganze rüber kopiert.

Aber dein Vorgehen klingt sehr gut und ich werde es so mal probieren.

Vielen Dank,
Stefan

Hi,

es hat geklappt! Vielen Dank!

Gruß,
Stefan