Ich habe eine Drupal 7-Site, auf der Knoten- und Feldrevisionen gespeichert werden. Ich behalte Revisionen für den Fall, dass versehentlich eine neue fehlerhafte Version gespeichert wird und ich zurückkehren möchte.
Aber jetzt möchte ich die Datenbank bereinigen und optimieren, um weniger Speicherplatz auf der Festplatte zu beanspruchen.
Mit welchen Methoden können alle Revisionen außer der aktuellen für alle Knoten / Felder der Site gelöscht werden?
Es gibt noch keine stabile Version für das Löschen von Revisionen, aber ein D7-Port ist auf dem Weg (nicht sicher, ob er überhaupt funktioniert).
In diesem Thread schlug jemand vor, mit VBO Revisionen zu isolieren und zu löschen.
Wenn Sie mit der API vertraut sind, durchlaufen Sie alle Knoten, rufen die Überarbeitungen mit ab
node_revision_list()
und löschen sie mitnode_revision_delete()
.Als letzten Ausweg und wenn Sie mit der Datenbank herumspielen möchten ( wie ich ), können Sie Revisionszeilen
field_revision_*
undnode_revision
-tabellen löschen . Versuche dies:ACHTUNG: überhaupt nicht getestet!
Die vollständige Liste Ihrer Revisionstabellen finden Sie in der
information_schema
Datenbank:quelle
WHERE node.vid = node_revision.vid
. Fehler wie sie sind. Geben Sie die Tabellen möglicherweise auch in der Abfrage field_revision_body an.In der gleichen Situation habe ich folgenden Code verwendet:
quelle
Ich habe dies für die VBO-Leute gemacht (führe willkürliches PHP aus), es löscht alle Revisionen (außer den aktuellen). Dies beruht auf der Sortierreihenfolge in gebaut
node_revision_list()
, so dass Ihre DB & Test für die gewünschten Ergebnisse zu sichern , bevor auf Live - Daten verwenden .quelle
Das Modul " Node Revision Delete" ist jetzt stabil.
quelle