Eu tenho um drupal 7 sites, onde ele mantém revisões de nós e de campo. Eu mantenho revisões para o caso em que, por engano, uma nova versão defeituosa é salva e quero reverter.
Mas agora eu quero limpar e otimizar o banco de dados para ocupar menos espaço no disco rígido.
Quais são alguns métodos para excluir todas as revisões, exceto a atual, para todos os nós / campos do site?
Ainda não há uma versão estável para exclusão da revisão, mas uma porta D7 está a caminho (não tenho certeza se está funcionando).
Nesse tópico, alguém sugeriu usar o VBO para isolar as revisões e excluí-las.
Se você se sentir confortável com a API, faça um loop por todos os seus nós, recupere as revisões
node_revision_list()
e exclua-as usandonode_revision_delete()
.Como último recurso, e se você gosta de mexer com o banco de dados ( como eu ), você pode excluir as linhas
field_revision_*
e as revisões das revisõesnode_revision
. Tente o seguinte:AVISO: não foi testado!
Você pode encontrar a lista completa das tabelas de suas revisões no
information_schema
banco de dados:fonte
WHERE node.vid = node_revision.vid
. Erros como estão. Talvez também especifique as tabelas na consulta field_revision_body?Na mesma situação, usei o código abaixo:
fonte
Eu fiz isso para o pessoal da VBO (execute PHP arbitrário), ele excluirá todas as revisões (exceto as atuais). Isso depende da ordem de classificação incorporada
node_revision_list()
; portanto , faça backup do seu banco de dados e teste os resultados desejados antes de usar os dados ativos .fonte
O módulo de Exclusão de Revisão do Nó agora tem uma versão estável.
fonte