Upgrade von 3.5.6 auf 4.1.2: Datenbankupdate liefert Error

Moin! Zum Jahreswechsel wollte ich endlich das Upgrade avon 3.5.6 auf 4.1.2 mit dem Updateskript durchführen. Natürlich habe ich es vorher einmal durchexerziert, um evtl. Fehler zu finden. Dafür habe ich eine Debian 7 System mit identischer Datenbank und Dateien benutzt. Hat alles super funktioniert. Jetzt ist mein Produktionssystem allerdings noch Debian 6 (PHP 5.3.3-7+squeeze18, Apache 2.2.16-6+squeeze11, MySql 5.1.72-2). Das Updateskript hat dann beim Datenbankupdate in der Mitte gestoppt. Nach etwas Suchen fand ich die folgende Fehlermeldung im Update-Log: exception 'ErrorException' with message 'natsort() expects parameter 1 to be array, boolean given' in [irgendeinpfad]/update/libs/Shopware/Update.php:938 Stack trace: #0 [internal function]: Slim\Slim-\>handleErrors(2, 'natsort() expec...', '/var/www/vhosts...', 938, Array) #1 [irgendeinpfad]/update/libs/Shopware/Update.php(938): natsort(false) #2 [irgendeinpfad]/update/libs/Shopware/Update.php(425): Shopware\_Update-\>databaseAction() #3 [internal function]: {closure}('database') #4 [irgendeinpfad]/update/libs/Slim/Router.php(172): call\_user\_func\_array(Object(Closure), Array) #5 [irgendeinpfad]/update/libs/Slim/Slim.php(1222): Slim\Router-\>dispatch(Object(Slim\Route)) #6 [irgendeinpfad]/update/libs/Slim/Middleware/Flash.php(86): Slim\Slim-\>call() #7 [irgendeinpfad]/update/libs/Slim/Middleware/MethodOverride.php(94): Slim\Middleware\Flash-\>call() #8 /[irgendeinpfad]/update/libs/Slim/Middleware/PrettyExceptions.php(67): Slim\Middleware\MethodOverride-\>call() #9 [irgendeinpfad]/update/libs/Slim/Slim.php(1174): Slim\Middleware\PrettyExceptions-\>call() #10 [irgendeinpfad]/update/index.php(65): Slim\Slim-\>run() #11 {main} Hat jemand eine Idee, was da los ist? Alternativ müsste ich das Update auf einem Debian 7 System machen und dann zurückspielen, was wegen der Größe und bekannter Upstrem-Limitierungen bei DSL eher unschön wäre. Danke und Gruß

Hi, wir haben selbiges Fehlerbild beim Update. Der Fehler ist über FireBug auch als Antwort der Ajax-Requests ersichtlich. Woran kann dies liegen? Über eine zeitnahe Antwort würde ich mich sehr freuen. :slight_smile: Vielen Dank im Voraus und viele Grüße Flo Edit, was durch Debugging herauskam: Der Fehler tritt exakt dann auf, wenn der offset = 26 ist. Gleichzeitig gehen die Delta-Dateien nur bis 25. Der natsort Fehler tritt dann auf, da die darumklammernde if-Bedingung hier nicht greift. count($deltas) liefert auch bei dem offset = 26 ein true zurück; was wohl dem generellen Verhalten der PHP count-Funktion geschuldet sein dürfte. Da mir aber das eigentlich gewünschte Verhalten unbekannt ist: Was sollte an der Stelle denn wirklich geschehen und wie sieht eine entsprechende Lösung aus?

Hallo, falls noch jemand auf dieses Problem trifft: In der Datei update/libs/Shopware/Update.php in der Zeile 937: if (count($deltas)) { ersetzen mit if (is_array($deltas) && count($deltas) > 0) { Damit lief das Update bei mir durch.

1 „Gefällt mir“