Tengo varios miles de nodos de un tipo de contenido en particular. Usando la interfaz web (example.com/admin/content), solo puedo eliminar unos 50 a la vez. ¿Cómo puedo eliminarlos rápidamente?
31
Hay un módulo para eso (TM).
Ver eliminación masiva .
Eso usará la API de Batch para eliminar los nodos para evitar problemas de tiempo de espera o memoria al eliminar miles de nodos con una sola llamada a node_delete_multiple ().
Bulk Delete es un módulo abandonado. Ver alternativas:
Mirando el módulo Devel Generate en busca de inspiración, aquí está su función "matar contenido"
devel_generate_content_kill
:Por lo tanto, intentaría usar Devel Generate para eliminar todos los nodos pero no crear ninguno nuevo, o usar example.com/devel/php para llamar
devel_generate_content_kill(array('node_types' => array('my_node_type')));
directamente.fuente
En Drupal 8, una forma es usar el método entityQuery () con el método EntityStorageInterface :: delete () :
Si necesita aplicar otros filtros / condiciones, puede consultar la página de interfaz QueryInterface
EDITAR (de otra manera, gracias a @ 4k4 ):
Si desea probar el código, puede usar:
Esto eliminará todos tus artículos.
fuente
$entities = $storage_handler->loadByProperties(['type' => 'YOUR_CONTENT_TYPE_NAME']);
entityQuery
, debe configurarloaccessCheck
en la declaración. De lo contrario, si lo ejecuta en drush, de forma predeterminada, accessCheck se establece en verdadero y no se devolverá ningún nodo al que uid 0 no tenga acceso.Si desea hacerlo únicamente a través de la interfaz de usuario, puede usar el módulo devel_generate.
De esta manera, no se generarán nodos y se eliminarán todos los nodos de los tipos seleccionados.
fuente
Cree un archivo con el código siguiente en la raíz de la instalación de drupal y ejecute el archivo.
fuente
Puede hacer esto en Drupal 7 usando la parte Ejecutar código PHP del módulo Devel ingresando:
fuente
Haga esto en la terminal, si usa Drush y borra todo el módulo:
fuente
Views Bulk Operations proporciona una pantalla de administración de nodos configurable y habilitada para BatchAPI que permite filtrar por tipo, seleccionar todos los nodos que coincidan con sus criterios de búsqueda, etc.
Esa es mi solución práctica en Drupal 6: además de la eliminación por lotes, puede editar en masa los nodos y hacer muchas otras cosas.
Parece que la versión Drupal 7 aún no está lista, pero estaría viendo ese módulo para una versión D7.
fuente
Otro fragmento es:
donde
TO_BE_DELETED
es el tipo de contenido que se eliminará.fuente
db_delete('node')
Con el módulo Devel, usando drush:
O en la interfaz de usuario como se explica aquí: http://befused.com/drupal/delete-nodes-devel
fuente
devel_generate
que debe habilitarse. Y para múltiples tipos esdrush genc 0 --kill --types="article, page"
Uso Delete all module, funciona bien con D8 y proporciona comandos drush muy útiles. Por ejemplo, para eliminar todo el
article
contenido del tipo de contenido:fuente
Puede intentar Eliminar todo el módulo, vaya a 'admin / content / delete_content' y se le presentará un formulario para eliminar el contenido que pertenece a ciertos tipos de contenido.
Saludos
fuente
Si tiene habilitado el módulo Migrate, puede usar:
Consulte Comandos de migración típicos con Drush .
fuente
Este módulo se utiliza para eliminar todo el contenido y / o usuarios de un sitio. Esta es principalmente una herramienta de desarrollo, que puede ser útil en varios casos
https://www.drupal.org/project/delete_all
así como el módulo Bulk Delete eliminará todos los nodos de un determinado tipo de nodo utilizando la API por lotes. Se recomienda utilizar el módulo de Operaciones por lotes de vistas (VBO) para una pequeña cantidad de nodos. Pero si tiene que eliminar 10.000 nodos, este módulo podría ser una mejor opción.
https://www.drupal.org/project/bulkdelete
fuente
Eliminar todos los nodos del tipo de contenido mediante programación aquí hay una función auxiliar:
fuente
Terminé usando db_delete , no se requieren módulos:
Editar / Advertencia: Vea el comentario de Berdir a continuación. Este método no limpia todos los datos relacionados con los nodos.
fuente
Si no desea codificar, puede probar este módulo, https://drupal.org/project/total_control
Simplemente vaya a Panel -> Contenido, seleccione todo el contenido (puede filtrar por tipo de contenido), luego seleccione "Eliminar elemento"
fuente