Basta saber se o Drush é capaz de excluir nós de um determinado tipo de conteúdo.
Algo como: $ drush delete-node --type=MyContentType
Se não for possível, posso criar um método como esse?
Você pode criar uma função da seguinte maneira:
function MYMODULE_delete_all_the_things() {
$query = new EntityFieldQuery;
$result = $query->entityCondition('entity_type', 'node')
->propertyCondition('type', 'YOUR-CONTENT-TYPE')
->execute();
if (isset($result['node']) && count($result['node'])) {
$node_ids = array_keys($result['node']);
node_delete_multiple($node_ids);
}
}
Nota - Você também pode usar uma SELECT
consulta simples , mas, ao trabalhar com entidades, parece mais sensato / prática comum usar o EntityFieldQuery .
Também deve ser muito fácil alterar ou adicionar argumentos. Você também pode colocá-lo em um comando Drush com bastante facilidade - há um exemplo de como fazer isso no repositório Drush (verifique a seção Comandos na parte inferior).
Instale o módulo devel e use drush para excluir todos os nós,
Você também pode dar uma opção de tipo,
fonte
devel_generate
módulo está incluído no devel, mas precisa ser ativado com odrush en devel_generate
genc normalmente é usado para criar nós, então o 0 0 no final está dizendo para não criar nada de novo, e o --kill para remover o que já existe.Eu acho que você pode usando o comando abaixo
EDIT: Encontrou um módulo que faz algo / relacionado à pergunta
http://drupal.org/project/delete_all
Uso
Drush
drush delete-all
Exemplo:
drush delete-all article
fonte
delete_all
ainda não foi portado para o Drupal 8 , mas a resposta genc funciona.Algo assim funcionaria (não testado):
Isso encontrará todos os nós com o tipo de conteúdo
Annoucements
usandoEntityFieldQuery()
. Em seguida, obtém todo o$nids
resultado e os exclui usandonode_delete_multiple()
.Você pode pegar esse código, colocá-lo em um arquivo PHP separado e executá-lo com
drush scr
.O uso da API garantirá que todos os ganchos adequados sejam acionados. Entre outras coisas, eles também excluirão as revisões do nó e os dados do campo (e suas revisões) para que você não tenha dados órfãos no banco de dados.
fonte
Existem algumas boas idéias sobre este tópico. Se você realmente não deseja fazer nenhuma programação e deseja usar o Drush, pode consultar o módulo contribuído Excluir tudo :
fonte
VBO tem integração Drush. Crie uma visualização VBO dos nós, execute-a via Drush (usando
drush vbo-execute
), passe o tipo de nó como argumento.fonte
Drush 9
drush entity:delete node --bundle=my_content_type
fonte
Você também pode criar um script drush (digamos que seja chamado "bulk_delete.php" e seja colocado na pasta raiz do Drupal):
Esta é absolutamente a maneira mais rápida de fazer isso: uma consulta direta ao banco de dados, usando a função do Drupal db_delete
Uso:
Doc: https://api.drupal.org/api/drupal/includes!database!database.inc/function/db_delete/7
Aviso: este processo não exclui os dados de seus campos. De qualquer forma, o mesmo processo pode ser aplicado a esses campos (observando a coluna "pacote configurável" de cada campo). Por exemplo:
Onde "mycontenttype" é o usado na primeira consulta.
fonte
'nid' > 5000
?Drupal 7
Experimente o seguinte linux, ele remove todos os nós MyContentType do Drupal:
Ou você pode remover todas as entidades com base no nome do tipo de entidade (por exemplo, nó):
Nota:
node
é o nome do tipo de entidade, você pode alterá-lo, se necessário.Se você receber erros de memória ou de tempo limite, adicione os seguintes conjuntos imediatamente antes do
$res
:fonte
Para excluir todos os nós de um tipo de conteúdo específico, tente executar o seguinte comando via drush:
Onde MyContentType é o nome do Tipo de Conteúdo da sua máquina (por exemplo, Página).
fonte
Para nós individuais:
fonte
Atualizando a resposta fornecida por @kenorb.
No Drupal 8
fonte
Você pode usar
drush node_delete NID
para excluir um nó específico, mas se você deseja excluir todos os nós por tipo de conteúdo, acho que você pode criar um plugin drush usando a API do lote.fonte
Você também pode fazer isso com o módulo devel, conforme respondido em Posso excluir nós de um determinado tipo de conteúdo com o Drush?
Instale o módulo devel e use drush para excluir todos os nós,
$ drush genc --kill 0 0
Você também pode dar uma opção de tipo,
$ drush genc --kill --types = article 0 0
fonte