Saltar al contenido

Drupal – ¿Cómo eliminar un nodo o una lista de nodos con Drush?

Recabamos en el mundo on line y así de esta forma traerte la solución a tu problema, si tienes alguna inquietud déjanos la duda y responderemos porque estamos para servirte.

Solución:

Finalmente creo mi propio módulo llamado drush_delete

Dentro de drush_delete.drush.inc archivo pon este codigo:

 dt("Delete nodes."),
    'aliases' => array('nd'),
    'arguments' => array(
      'nids' => dt('The nids of the nodes to delete'),
    ),
    'examples' => array(
      'drush node-delete 1' => dt('Delete the node with nid = 1.'),
      'drush node-delete 1 2 3' => dt('Delete the nodes with nid = 1, 2 and 3.'),

    ),
  );
  return $items;


/**
 * Callback for the node-delete command
 */
function drush_drush_delete_node_delete() 
  $nids = func_get_args();
  $nids = array_filter($nids, 'is_numeric');
  $nids = array_map('intval', $nids);
  $nids = array_unique($nids);
  $nids = array_values($nids);
  $cant = count($nids);

  if ($cant > 0) 
    node_delete_multiple($nids);

    drush_print(dt("Deleted nodes:"));
    drush_print(implode(' ', $nids));
  
  else 
    drush_set_error('DRUSH_ERROR_CODE', dt("You must enter at least one nid"));
  

Instale el módulo, ejecute drush cc drush para borrar el caché de drush y use el comando como este:

Para eliminar un uso de nodo:

drush node-delete 1
drush nd 1

Para eliminar múltiples nodos use:

drush node-delete 1 2 3
drush nd 1 2 3

Puede encontrar el comando en este módulo:

https://github.com/adrian-cid/drush_commands

Si usa el módulo Drush Entity, entonces puede ejecutar drush entity-delete node 123 para eliminar nid 123 de su sitio.

EDITAR: Si alguien necesita usar el drush entity-delete comando, debe usar la versión de desarrollo del módulo: https://www.drupal.org/project/drush_entity/releases/7.x-5.x-dev

En mi humilde opinión, la forma más fácil es con php-eval:

drush php-eval "node_delete_multiple(array(NODE_ID));"

drush php-eval "node_delete_multiple(array(34));"     // for node/34

drush php-eval "node_delete_multiple(array(34, 35));" // for node ids 34 and 35

Calificaciones y comentarios

Nos puedes añadir valor a nuestra información añadiendo tu experiencia en las anotaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *