Mein Speicherverbrauch ist über 50GB, wenn ich ein Produkt lösche nimmt er nicht ab.
Wie lösche ich Bilddateien, die ich nicht mehr verwende, um Speicher zu sparen?

Mein Speicherverbrauch ist über 50GB, wenn ich ein Produkt lösche nimmt er nicht ab.
Wie lösche ich Bilddateien, die ich nicht mehr verwende, um Speicher zu sparen?
Ich weiss aber nicht, welche nicht mehr gebraucht werden. Gibt es keine Automatik?
Siehe Doku, die @Max_Shop gepostet hat (evtl. vorher ein Backup erstellen):
Viele Aufgaben des Medienmanagers lassen sich auch über SSH durchführen, davon ausgehend, dass Du Dich per Shell im Shopware-Hauptverzeichnis befindest, kannst Du die folgenden Befehle nutzen:
Ist das nur über SSH möglich?
Übrigens:
admin@server /> php bin/console sw:media:cleanup
Could not open input file: bin/console
Geht nur über SSH. Zur Fehlermeldung: Pfad falsch.
Ich habe mich über cd ins /shop verzeichnis gehangelt:
admin@server /domain.ch/shop> php bin/console sw:media:cleanup
WARNING! Could not connect to database. Message from SQL Server: SQLSTATE[HY000] [2002] No such file or directory in /domain.ch/shop/engine/Shopware/Components/DependencyInjection/Bridge/Db.php
Searching for unused media files.
---------------------------------
In Container.php line 248:
Circular reference detected for service "Shopware\Components\Model\ZendDbIn
itializer", path: "shopware_media.garbage_collector -> shopware_media.garba
ge_collector_factory -> Shopware\Components\Model\ZendDbInitializer -> db -
> Shopware\Components\Model\ZendDbInitializer".
In Container.php line 272:
The "db_connection" service is synthetic, it needs to be set at boot time b
efore it can be used.
In Container.php line 272:
The "db_connection" service is synthetic, it needs to be set at boot time b
efore it can be used.
sw:media:cleanup [--delete]
Du hast keine Berechtigung auf den MySQL Socket zuzugreifen. Falls die Datenbank lokal auf dem Server liegt kannst Du versuchen, in Deiner config.php den Eintrag ‚localhost‘ durch ‚127.0.0.1‘ zu ersetzen, sodass Du nicht per Socket sondern per TCP auf die DB zugreifst - danach 1x den Shopware Cache löschen.
Muss ich wohl eines dieser Kommandos durchführen, um auf die DB zugreifen zu können?:
Du musst die config.php anpassen (s.o.).
Hat geklappt. Was tut php bin/console sw:media:migrate - migriert Medien aus der alten Struktur (vor 5.1) in die neue Struktur (ab 5.1) genau?
php bin/console sw:media:cleanup steht übrigens 2 mal in der Shopware-Doku.
Was tut php bin/console sw:media:migrate - migriert Medien aus der alten Struktur (vor 5.1) in die neue Struktur (ab 5.1) genau?
Vor Shopware 5.1 lagen alle Bilder unter /media/image ohne weitere Unterordner. Je nach Anzahl der Bilder ging das auf die Performance.
Kann ich das Kommando rückgängig machen, leider hat es mir auch ein paar Bilder gelöscht, die als Logos für die Hauptseite gebraucht wurden. Z.B:
Nein - daher auch der Hinweis vorher ein Backup zu erstellen.
Nachtrag: wenn Du sw:media:cleanup und nicht sw:media:cleanup --delete verwendet hast, findest Du die fehlenden Bilder evtl. im Papierkorb der Medienverwaltung.
In welchen Ordner sollte ich die Bilder der Website speichern, damit das nicht mehr passiert? Verwendet wurden sie ja eigentlich.
Normalerweise passiert das nicht - offenbar war das Bild nicht richtig indexiert.
Wahrscheinlich war die Footer-Zeile manuell angepasst, da man keine Kreditkartenlogos im Template anzeigen kann.
Möglich - und evtl. wurde das entsprechende Bild halt einfach nur in der Medienverwaltung hochgeladen. Wird dieses dann nicht auf einer Seite oder bei einem Artikel verwendet, gibt es hierzu auch keinen Eintrag in der Datenbank und für media-cleanup sieht es dann so aus, als ob das Bild nicht verwendet wird.
Das wird so sein. Demzufolge müsste ich diese Bilder nicht im Media-Ordner speichern.