Eu tenho vários milhares de nós de um tipo de conteúdo específico. Usando a interface da web (exemplo.com/admin/content), só posso excluir cerca de 50 por vez. Como posso excluí-los rapidamente?
31
Existe um módulo para isso (TM).
Consulte Excluir em massa .
Isso usará a API do Lote para excluir os nós para evitar problemas de tempo limite ou memória ao excluir milhares de nós com uma única chamada para node_delete_multiple ().
A exclusão em massa é um módulo abandonado. Veja para alternativas:
Observando o módulo Devel Generate em busca de inspiração, aqui está sua função "matar conteúdo"
devel_generate_content_kill
:Então, eu tentaria usar o Devel Generate para excluir todos os nós, mas não criar novos, ou usar example.com/devel/php para chamar
devel_generate_content_kill(array('node_types' => array('my_node_type')));
diretamente.fonte
No Drupal 8, uma maneira é usar o método entityQuery () com o método EntityStorageInterface :: delete () :
Se você precisar aplicar outros filtros / condições, verifique a página da interface QueryInterface
EDIT (Por outro lado, graças a @ 4k4 ):
Se você deseja testar o código, pode usar:
Isso excluirá todos os seus artigos.
fonte
$entities = $storage_handler->loadByProperties(['type' => 'YOUR_CONTENT_TYPE_NAME']);
entityQuery
, defina oaccessCheck
na declaração. Caso contrário, se você executá-lo em drush, por padrão accessCheck é definido como true e quaisquer nós aos quais o uid 0 não tem acesso não serão retornados.Se você quiser fazer isso exclusivamente através da interface do usuário, poderá usar o módulo devel_generate.
Dessa forma, nenhum nó será gerado e todos os nós dos tipos selecionados serão excluídos.
fonte
Crie um arquivo com o código abaixo na raiz da instalação do drupal e execute o arquivo.
fonte
Você pode fazer isso no Drupal 7 usando a parte Executar código PHP do módulo Devel, digitando:
fonte
Faça isso no terminal, se você usar Drush e excluir todos os módulos:
fonte
Visualizações As operações em massa fornecem uma tela de administração de nó configurável e habilitada para BatchAPI que permite filtrar por tipo, seleção de todos os nós que correspondem aos seus critérios de pesquisa, etc.
Essa é a minha solução prática no Drupal 6 - além da exclusão em lote, você pode editar nós em massa e fazer várias outras coisas.
Parece que a versão do Drupal 7 ainda não está pronta - mas eu estaria assistindo esse módulo para um lançamento do D7.
fonte
Outro trecho é:
onde
TO_BE_DELETED
é o tipo de conteúdo a ser excluído.fonte
db_delete('node')
Com o módulo Devel, usando drush:
Ou na interface do usuário, conforme explicado aqui: http://befused.com/drupal/delete-nodes-devel
fonte
devel_generate
que precisa ser ativado. E para vários tipos de que édrush genc 0 --kill --types="article, page"
Eu uso Delete all module, ele funciona bem com o D8 e fornece comandos drush muito úteis. Por exemplo, para excluir todo o
article
conteúdo do tipo de conteúdo:fonte
Você pode tentar Excluir todos os módulos, navegar para 'admin / content / delete_content' e você receberá um formulário para excluir o conteúdo pertencente a determinados tipos de conteúdo.
Saudações
fonte
Se você tiver o módulo Migrar ativado, poderá usar:
Consulte Comandos de migração típicos usando Drush .
fonte
Este módulo é usado para excluir todo o conteúdo e / ou usuários de um site. Esta é principalmente uma ferramenta de desenvolvedor, que pode ser útil em vários casos
https://www.drupal.org/project/delete_all
assim como o módulo Excluir em Massa excluirá todos os nós de um determinado tipo de nó usando a API do lote. É recomendável usar o módulo Views Batch Operations (VBO) para um pequeno número de nós. Mas se você precisar excluir 10.000 nós, este módulo poderá ser uma opção melhor.
https://www.drupal.org/project/bulkdelete
fonte
Exclua todos os nós do tipo de conteúdo programaticamente, aqui está uma função auxiliar:
fonte
Acabei usando db_delete , nenhum módulo necessário:
Editar / Aviso: Veja o comentário de Berdir abaixo. Este método não limpa todos os dados relacionados aos nós.
fonte
Se você não quiser codificar, e você pode experimentar este módulo, https://drupal.org/project/total_control
Vá para Painel -> Conteúdo, selecione todo o conteúdo (você pode filtrar por tipo de conteúdo) e selecione "Excluir item"
fonte