Revisionen und wie man sie alle löscht. Für Drupal 7 gibt es viele Module, die dies tun oder sogar die beibehaltenen Revisionen einschränken oder sogar alles löschen, was älter als x Tage ist, aber nicht für Drupal 8.
Es scheint, dass da draußen nichts ist. Das Durchsuchen der Datenbank möchte ich nicht tun.
Irgendwelche Ideen?
Antworten:
Ja, wie Sie sagen, gibt es eine Liste von Modulen, die dies in Drupal 7 tun können, wie:
Knotenrevision löschen
Knotenrevisionsbeschränkung
Bereinigung der Knotenrevision
Revision löschen
Und für Drupal 8 gibt es derzeit kein Modul dafür, aber Sie können Folgendes verwenden:
So rufen Sie die Revisionsliste eines Knotens ab:
Siehe Knoten haben jetzt einen Speichercontroller. node_revision_list () entfernt.
Um eine Revision zu löschen, können Sie die Funktion node_revision_delete () verwenden. Am Ende finden Sie jedoch den Funktionscode:
Also, ist besser, wenn Sie nur verwenden:
\Drupal::entityTypeManager()->getStorage('node')->deleteRevision($revision_id);
quelle
entityManager
? Ich denke, es ist veraltet.Snippet zum Löschen aller bis auf die letzte Version eines bestimmten Knotens:
quelle
Die Vorschläge hier sind richtig, obwohl einige Dinge erwähnenswert sind.
Da dies jedoch als veraltet markiert ist, sollte es ersetzt werden durch:
Der Beispielcode hier versucht auch, die Standardversion zu löschen, und das wird dazu führen
[error] Default revision can not be deleted
. Um dies zu vermeiden, schlage ich vor, dass Sie die Entfernung in etwas wie Folgendes einwickeln:quelle
Es gibt ein Arbeitsmodul für Drupal 8: Node Revisions Autoclean .
Erwarten Sie noch nicht, dass es auf normalen Cron-Läufen läuft. Es kann jedoch so eingestellt werden, dass es beim Aktualisieren von Knoten ausgeführt wird. Hier ist das Problem für den Cron, das ich nicht vollständig verstehe: https://www.drupal.org/project/node_revisions_autoclean/issues/2958655
quelle
Bitte injizieren Sie immer eine Lagerung in der richtigen Weise:
In diesem Fall können Sie bereits Folgendes in Ihrem Klassenkonstruktor haben:
In diesem Fall listet Ihre IDE im Gegensatz zu dieser Lösung auch problemlos alle verfügbaren Methoden auf:
Denken Sie daran, dass EntityTypeManager in den meisten Fällen "zu viel" Leistung bietet: Verwenden Sie nur so viel, wie Sie benötigen, aber nicht mehr. Servicekonfigurationen können Ihnen dabei helfen.
quelle