Loggen nach "version_commit_data" komplett oder für bestimmten User deaktivieren?

Hallo Zusammen,

Über ein Plugin importieren wir zahlreiche Daten per API/Repo in einen Shopware 6 Shop.
Problematisch: Jeder Commit auf einem Repo wird automatisch in die Tabelle version_commit_data in der Datenbank geloggt. Dadurch wird die Tabelle sehr schnell groß.

Gibt es eine Möglichkeit, das automatische Loggen bzw. die Versionierung in dieser Tabelle komplett oder für einen bestimmten API-Benutzer zu deaktivieren?

Im Plugin verknüpfen wir alle Änderungen auf dem Repo per Context mit einer AdminApiSource bzw. einem speziellen Admin-Benutzer, der nur für dieses Plugin verwendet wird.

Ich freue mich auf Ideen und Hilfestellungen.

Viele Grüße
Dennis

 

Wir hatten mit sehr großen Problemen mit dem Version Manager zu kämpfen.
Scheint noch sehr buggy zu sein. Unter anderem hat es dazu geführt, dass Inhalte nicht korrekt oder überhaupt nicht abgespeichert wurden beim Pflegen von Inhalten. 
Teilweise gabs dann auch das Problem dass wir Rollbacks hatten die bereits geänderte Inhalte wieder auf einen früheren Stand zurück gesetzt haben.

Den Versionmanager für einzelne User zu deaktivieren bzw. überhaupt etwas diesbzgl einzustellen ist meines Wissens nach nicht möglich. Lasse mich gerne eines besseren belehren. 

Um den Versionmanager und die einhergehenden Probleme zu beheben haben wir kurzerhand das Schreiben in den Log komplett deaktiviert.
Dafür einfach jede Zeile mit $this->writeAuditLog in vendor/shopware/core/Framework/DataAbstractionLayer/VersionManager.php auskommentieren (wir haben dafür ein eigenes Repo for den core)

Seither absolut keine Probleme mehr gehabt und die Datenbank wächst auch nicht mehr ins Bodenlose. 

Ob das langfristig eine gute Idee war oder ist, kann ich nicht direkt sagen. Bisher haben wir keine Probleme feststellen können.
 

@gentlemon schrieb:

Wir hatten mit sehr großen Problemen mit dem Version Manager zu kämpfen.
Scheint noch sehr buggy zu sein. Unter anderem hat es dazu geführt, dass Inhalte nicht korrekt oder überhaupt nicht abgespeichert wurden beim Pflegen von Inhalten. 
Teilweise gabs dann auch das Problem dass wir Rollbacks hatten die bereits geänderte Inhalte wieder auf einen früheren Stand zurück gesetzt haben.

Den Versionmanager für einzelne User zu deaktivieren bzw. überhaupt etwas diesbzgl einzustellen ist meines Wissens nach nicht möglich. Lasse mich gerne eines besseren belehren. 

Um den Versionmanager und die einhergehenden Probleme zu beheben haben wir kurzerhand das Schreiben in den Log komplett deaktiviert.
Dafür einfach jede Zeile mit $this->writeAuditLog in vendor/shopware/core/Framework/DataAbstractionLayer/VersionManager.php auskommentieren (wir haben dafür ein eigenes Repo for den core)

Seither absolut keine Probleme mehr gehabt und die Datenbank wächst auch nicht mehr ins Bodenlose. 

Ob das langfristig eine gute Idee war oder ist, kann ich nicht direkt sagen. Bisher haben wir keine Probleme feststellen können.
 

Danke für die Info.

Aus unserer natürlich keine gute Lösung im Core Zeilen auszukommentieren…

 

Gibt es hier noch Idee seitens Shopware?

 

Viele Grüße
Dennis

Du solltest dir ein Cronjob einrichten, der diese Tabelle leert :) 

@Shyim schrieb:

Du solltest dir ein Cronjob einrichten, der diese Tabelle leert :) 

Alles klar danke für den Hinweis.

Wie sieht es aus mit den Foreign Keys der Version IDs anderer Repos (z.B. version_id in der product Tabelle)?
GIbt es dabei keine Probleme, wenn man Daten einfach aus der version_commit_data Tabelle löscht?

Wir stehen vor dem gleichen Problem.

Hat jemand schon Erfahrungen damit gemacht, wenn man die Tabelle regelmäßig leert, ob es dann zu Problemen an anderen Stellen kommt?

Hier auch mal wieder die Frage, warum Shopware hier nicht selbst eine Cleanup Routine bereitstellt?

Hallo Zusammen,

Wir haben dieses Thema hier zum Anlass genommen, ein Plugin für das automatisierte Bereinigen der Tabellen zu entwickeln.

Das Plugin findet Ihr ab sofort hier im Store: https://store.shopware.com/compr92579686640/automatische-bereinigung-der-warenkoerbe-log-eintraege-und-version-commit-daten.html

Kurz zusammengefasst was das Plugin tut/kann:

  • Bereinigung überflüssiger Daten, die die Datenbank unnötig groß werden lassen (Warenkörbe, Log-Einträge, Version Commit Daten)
  • Automatische Bereinigung der Daten über einen Scheduled Task
  • Manuelle Bereinigung der Daten in den Cache-Einstellungen im Adminbereich
  • Freie Konfiguration, welche Daten bereinigt werden sollen und aus welchem Zeitraum

 

Wir hoffen euch damit weiterhelfen zu können!

Viele Grüße
Dennis

COMPRA GmbH

1 „Gefällt mir“