[gelöst] Error bei Update SW 5.1.0 zu 5.3

Hallo zusammen, 

leider will das Update bei mir nicht durchlaufen … Habe schon alle Plug-Ins deinstalliert die der Updater als nicht kompatible markiert hatte, bekomme jedoch trotzdem folgende Fehlermeldung mit der ich leider so gar nichts anfangen kann.  Foot-in-Mouth

Error
Received the following error message:
Could not apply migration (Migrations_Migration919). Error: SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row 

Please try to fix this error and restart the update.
Response
{"valid":false,"errorMsg":"Could not apply migration (Migrations_Migration919). Error: SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row "}

2 / 3 Datenbank-Update wird durchgeführt...

Ich hoffe Ihr habt da eine Idee zu. 

VG 

Paul

Guck mal ob in s_core_menu controller = „PluginManager“ mehrfach vorkommt. Dann einen löschen?

1 Like

Hey Mike,

danke für Deine Antwort. Ich konnte folgende 4 Einträge finden. Welche meinst Du sollte ich am besten löschen?

hmmm… Migrations_Migration919 gibt es 2 Mal.

Ist in s_library_component irgendwas mit x_type = ‘emotion-components-article’ oder emotion-components-article-slider doppelt?

1 Like

@NextMike schrieb:

hmmm… Migrations_Migration919 gibt es 2 Mal.

Wäre toll wenn einem die Fehlermeldung auch mitteilen würde was doppelt ist.  Grin

Hier wäre article doppelt … 

Evtl. Artikel2 löschen?! 

Das wäre auszuprobieren. Vorher sichern. 

1 Like

Gelöscht… immer noch die Fehlermeldung … bzw. muss ich das Update nochmal komplett neustarten oder reicht es wenn ich den laufenden Updater mit F5 neu anschubse?

Hmm… hab jetzt auch mal die 4 „PluginManager“ gelöscht, ergab leider auch kein Erfolg.  Foot-in-Mouth

Gibts keine Möglichkeit rauszufinden welcher Eintrag doppelt ist?

Laut Migration können das nur emotion-components-article-slider oder emotion-components-article sein.

1 Like

Die Suche hat mir jeweils nur einen Eintrag angezeigt. Habe zum test mal beide gelöscht, leider ergab beides kein Erfolg … Fehlermeldung bleibt bestehen.  Foot-in-Mouth Wenn ich weiter so fröhlich rumlösche bleibt bald nichts mehr von der DB übrig.  Grin

Oh ich seh gerade, dass sich die Fehlermeldung doch geändert hat. Ich vermute mal das jetzt fehlen die beiden Einträge die ich gerad gelöscht habe…

Error
Received the following error message:
Could not apply migration (Migrations_Migration919). Error: array_column() expects parameter 1 to be array, null given 

Please try to fix this error and restart the update.
Response
{"valid":false,"errorMsg":"Could not apply migration (Migrations_Migration919). Error: array_column() expects parameter 1 to be array, null given "}

Was aber auch bedeutet, wenn ich die wieder herstelle, hab ich wieder die alte Fehlermeldung?!

Yey habs rausbekommen.  Halo Lag wirklich an dem doppelten emotion-components-article Eintrag aus dem Bild oben. Hatte jetzt nochmal ein Backup eingespielt und vor dem Update den zweiten Eintrag gelöscht. Danach das Update gestartet und es lief ohne Probleme durch. 

Aber ich hatte mich natürlich zufrüh gefreut.  Foot-in-Mouth HTTP ERROR 500  Undecided 

Im Log steht folgenes: 

[2017-08-02 22:47:06] core.ERROR: exception 'Symfony\Component\Filesystem\Exception\IOException' with message 'Cannot rename because the target "/home/xxx/www.xxx.de/xxx/files/update//update-assets/" already exists.' in /home/xxx/www.xxx.de/vendor/symfony/filesystem/Filesystem.php:272 
Stack trace: 
#0 /home/xxx/www.xxx.de/engine/Shopware/Plugins/Default/Backend/SwagUpdate/Controllers/Backend/SwagUpdate.php(351): Symfony\Component\Filesystem\Filesystem->rename('/xxx/xxx...', '/xxx/xxx...') 
#1 /home/xxx/www.xxx.de/engine/Library/Enlight/Controller/Action.php(158): Shopware_Controllers_Backend_SwagUpdate->unpackAction() 
#2 /home/xxx/www.xxx.de/engine/Library/Enlight/Controller/Dispatcher/Default.php(523): Enlight_Controller_Action->dispatch('unpackAction') 
#3 /home/xxx/www.xxx.de/engine/Library/Enlight/Controller/Front.php(227): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) 
#4 /home/xxx/www.xxx.de/engine/Shopware/Kernel.php(148): Enlight_Controller_Front->dispatch() 
#5 /home/xxx/www.xxx.de/vendor/symfony/http-kernel/HttpCache/HttpCache.php(492): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) 
#6 /home/xxx/www.xxx.de/engine/Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL) 
#7 /home/xxx/www.xxx.de/vendor/symfony/http-kernel/HttpCache/HttpCache.php(263): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true) 
#8 /home/xxx/www.xxx.de/engine/Shopware/Components/HttpCache/AppCache.php(103): Symfony\Component\HttpKernel\HttpCache\HttpCache->pass(Object(Symfony\Component\HttpFoundation\Request), true) 
#9 /home/xxx/www.xxx.de/shopware.php(101): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request)) 
#10 {main} [] {"uid":"e84b337"}

Ich hatte jetzt vor diesem Update die Plug-Ins nicht aufgeräumt, da ich das Backup vor dem löschen der Plug-Ins gemacht hatte. Könnte es laut der Fehlermeldung ausschließlich daran liegen oder zickt da noch was anderes rum? 

Der Fehler ist nicht weiter schlimm, lösche am besten einfach den Ordner /update-assets/ und im Ordner files/ den Ordner “update”. Dann sollte das Update auch durch sein.

@Moritz Naczenski schrieb:

Dann sollte das Update auch durch sein.

Ach wär das schön, wenns so einfach wär. ^^ Den Ordner update in files/ konnte ich finden und hab ihn gelöscht, daraufhin verschwand die Fehlermeldung und die Seite vom Backend wie auch vom Shop wurden komplett weiß. Foot-in-Mouth Einen Logeintrag gibt es nun auch nicht mehr. Den Ordner /update-assets/ konnte ich jedoch nicht finden. Dafür konnte ich einen Ordner “assets” in /recovery/update/ , den hab ich zum Test auch mal gelöscht, leider ohne Erfolg. Gleiches gilt für den Cache-Ordner Production, nach löschen keine Änderung. Foot-in-Mouth

Ist das produktiv oder ein Hobby?

Es handelt sich um eine Testumgebung vom produktiven Shop. Ich mach kein Update vom produktiven Shop solange ich die Testumgebung nicht sauber zum laufen bekomme. Die Daten selbst sind 1:1 vom aktiven Shop in einen Unterordner kopiert und die entsprechenden Verweise angepasst.

@WOLLkenSchaf schrieb:

Oh ich seh gerade, dass sich die Fehlermeldung doch geändert hat. Ich vermute mal das jetzt fehlen die beiden Einträge die ich gerad gelöscht habe…

Error
Received the following error message:
Could not apply migration (Migrations_Migration919). Error: array_column() expects parameter 1 to be array, null given

Please try to fix this error and restart the update.
Response
{„valid“:false,„errorMsg“:"Could not apply migration (Migrations_Migration919). Error: array_column() expects parameter 1 to be array, null given "}

Was aber auch bedeutet, wenn ich die wieder herstelle, hab ich wieder die alte Fehlermeldung?!

 

 

Ich erhalte die gleiche Fehlermeldung. Wie kann ich Sie beheben?

Konntest du das Problem lösen ?

Ja, wie ich schon oben geschrieben habe, lag es an dem doppelten emotion-components-article Eintrag, Nachdem ich den eintrag mit dem Namen „Artikel2“ komplett gelöscht hatte lief das Update ohne Problem durch.

Eventuell könnte mal bitte ein Admin den zweiten Beitrag von NextMike als Lösung markieren. Leider hatte ich das zu früh das als nicht Lösung makiert. Danke. :slight_smile:

Ergänzend dazu noch eine Lösung für ein Problem mit Migration919, das mir bei einem Update von 5.2.27 auf 5.4.3 untergekommen ist.

Vermutlich wenn der Shop ursprünglich mal SW 3.x oder 4.x war und immer schön weiter upgedatet wurde, kann sein sein, dass in der Tabelle “s_emotion_element_value” noch Werte stehen mit Pipe-Zeichen (|)

SELECT * FROM s_emotion_element_value  WHERE value = ‘||’;

Die Migration919 macht in der “function convertSelectedProductsOfProductSlider” dann ein json_decode dieses Wertes, was in “NULL” resultiert und somit den nachfolgenden Aufruf von array_column() in einen Fehler laufen lässt:

Could not apply migration (Migrations_Migration919) array_column() expects parameter 1 to be array

Mit nachfolgendem SQL Befehl lässt sich das Problem lösen:

UPDATE s_emotion_element_value SET value=’’  WHERE value = ‘||’;