Tengo un sitio drupal 7, donde guarda revisiones de nodos y campos. Mantengo las revisiones para el caso en el que, por error, se guarda una nueva versión defectuosa y deseo volver.
Pero, ahora quiero limpiar y optimizar la base de datos para ocupar menos espacio en el disco duro.
¿Cuáles son algunos métodos para eliminar todas las revisiones, excepto la actual, para todos los nodos / campos del sitio?
Todavía no hay una versión estable para la eliminación de Revisión, pero un puerto D7 está en camino (no estoy seguro de si es funcional).
En este hilo, alguien sugirió usar VBO para aislar las revisiones y eliminarlas.
Si se siente cómodo con la API, realice un bucle a través de todos sus nodos, recupere las revisiones usando
node_revision_list()
y elimínelas usandonode_revision_delete()
.Como último recurso y si le gusta jugar con la base de datos ( como yo ), puede eliminar las filas
field_revision_*
y lasnode_revision
tablas de las revisiones . Prueba esto:ADVERTENCIA: no probado en absoluto!
Puede encontrar la lista completa de las tablas de sus revisiones en la
information_schema
base de datos:fuente
WHERE node.vid = node_revision.vid
. Errores como es. ¿Quizás también especifique las tablas en la consulta field_revision_body?En la misma situación, usé el siguiente código:
fuente
Hice esto para la gente de VBO (ejecute PHP arbitrario), eliminará todas las revisiones (excepto la actual). Esto se basa en el orden de clasificación incorporado
node_revision_list()
, así que haga una copia de seguridad de su base de datos y prueba para obtener los resultados deseados antes de usar datos en vivo .fuente
El módulo Eliminar revisión de nodo ahora tiene una versión estable.
fuente