Media-Papierkorb zu groß

Hallo zusammen, ich habe aktuell das Problem das der Media-Papierkorb zu groß ist. Mit knapp 500.000 Files lässt er sich nicht mehr im Shopware Backend löschen bzw. leeren.

Der Konsolen Befehl hat hier bisher auch nichts weiter außer eine Fehlermeldung gebracht. Hat hier jemand noch eine andere Idee wie ich das am besten angehen kann?

Hatte schon an eine Erweiterung im Backend gedacht der Anzeige von 250 Bilder pro Seite auf 1000 hochzustocken… damit wäre ich zumindest nicht ganz so lange am löschen als bisher.

Jemand eine Idee?

Ich würde das hier gerne nochmal pushen und hoffe auf eine Rückmeldung… *HELP*

@runde8 schrieb:

Der Konsolen Befehl hat hier bisher auch nichts weiter außer eine Fehlermeldung gebracht. Hat hier jemand noch eine andere Idee wie ich das am besten angehen kann?

Der Konsolen-Befehl ist eigentlich die alternative wenn das Backend nicht mehr mitmacht. Was für eine Fehlermeldung wird denn angezeigt?

@t2oh4e schrieb:

@runde8 schrieb:

Der Konsolen Befehl hat hier bisher auch nichts weiter außer eine Fehlermeldung gebracht. Hat hier jemand noch eine andere Idee wie ich das am besten angehen kann?

Der Konsolen-Befehl ist eigentlich die alternative wenn das Backend nicht mehr mitmacht. Was für eine Fehlermeldung wird denn angezeigt?

Das dachte ich auch, allerdings lief der Befehl ca. 2 Stunden ganz ohne einen Mux… könnte natürlich auch eine Fehlkonfiguration des Servers sein aber ich kenne die Standardlaufzeit des Befehls leider nicht und wie mit ca. 50GB an Daten umgegangen wird und wie lange sowas dauern kann.

Bei 500000 Dateien wird der schon ne Weile laufen. Ich habe hier als Vergleich gerade einen zur Hand: ca. 130000 Datein, Papierkorb zuweisen, nicht löschen läuft ca. 2 Stunden

Der Befehl ermittelt zuerst alle nicht mehr benötigten Bilder und fängt dann erst an sie zu löschen (mit der option --delete). Das macht das command auch wenn die Bilder schon im Papierkorb liegen. Es gibt auch erst eine Rückmeldung wenn alle Bilder ermittelt und/oder gelöscht sind. Also wenn es nur nichts sagt und keine Fehlermeldung wirft einfach mal ein paar Stunden laufen lassen.

Oder alternativ selbst was bauen was nur die Bilder im Papierkorb löscht ohne nochmal neu zu ermitteln, aber auch das wird bei 500000 Bildern eine Weile brauchen.

@t2oh4e schrieb:

Bei 500000 Dateien wird der schon ne Weile laufen. Ich habe hier als Vergleich gerade einen zur Hand: ca. 130000 Datein, Papierkorb zuweisen, nicht löschen läuft ca. 2 Stunden

Der Befehl ermittelt zuerst alle nicht mehr benötigten Bilder und fängt dann erst an sie zu löschen (mit der option --delete). Das macht das command auch wenn die Bilder schon im Papierkorb liegen. Es gibt auch erst eine Rückmeldung wenn alle Bilder ermittelt und/oder gelöscht sind. Also wenn es nur nichts sagt und keine Fehlermeldung wirft einfach mal ein paar Stunden laufen lassen.

Oder alternativ selbst was bauen was nur die Bilder im Papierkorb löscht ohne nochmal neu zu ermitteln, aber auch das wird bei 500000 Bildern eine Weile brauchen.

Leider kam ich hier noch kein Stück weiter. Die Datenmenge wächste weiter an und ist mir ein Dorn im Auge. Noch jemand eine gute Idee?

Gibt es hier schon eine Lösung?

1 „Gefällt mir“

Ich stehe vor dem gleichen Problem. Bisher haben ich die Bilder nur in den Papierkorb verschieben lassen. Dort liegen jetzt so große Datenmengen, dass auch das Löschen über die Konsole nicht mehr funktioniert.

Mit folgendem Befehl versuche ich die Bilder sofort löschen zu lassen. Damit es nicht zu Engpässen mit dem Arbeitsspeicher kommt, erlaube ich der Konsole bis zu 2GB Arbeitsspeicher zu verwenden:

php -d memory_limit=2G bin/console sw:media:cleanup --delete -n

Leider wird dadurch folgende Fehlermeldung erzeugt:

 [Doctrine\DBAL\DBALException]                                                                
  An exception occurred while executing 'INSERT INTO s_media_used                              
                      SELECT DISTINCT NULL, m.id                                               
                      FROM s_media m                                                           
                      INNER JOIN s_articles_img                                                
                          ON s_articles_img.media_id = m.id':                                  
  SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction  
                                                                              
  [PDOException]                                                                               
  SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction