Cómo hacer un borrado masivo de usuarios en Drupal 7 con Drush

Author Top
enzo

En la entrada de blog Cómo hacer un borrado masivo de nodos en Drupal 7 con Drush aprendimos como crear un script especializado para el borrado masivo de nodos y su posterior ejecución con Drush.

Hoy siguiendo esta línea vengo a presentarles como hacer un borrad masivo de usuarios como se muestra en el siguiente código.

<?php

// Load user.module from the user module.
module_load_include('module', 'node', 'node');

// Roles to select user to delete
$roles = array('authenticated user','basics','developer','gold','platinum','recruiter');

$query = db_select('users', 'u');
$query->fields('u', array('uid'));
$query->join('users_roles','ur', 'u.uid=ur.uid');
$query->join('role', 'r', 'r.rid=ur.rid');
$query->condition('r.name', $roles, 'IN');
$query->condition('u.uid', 1, '>');
$query->orderRandom();
$query->range(0,15000);
$query->groupBy('u.uid');

$results = $query->execute();
foreach ($results as $result) {
  $uids[] = $result->uid;
}

print 'users to delete:' . count($uids). "\n";

if(!empty($uids)) {
  user_delete_multiple($uids);
  drupal_set_message(t('Deleted %count users.', array('%count' => count($uids))));
}

En este script filtramos los usuarios que deseamos borrar por medio de los roles a los que esta asociado y hacemos una condición especial para asegurarnos no borrar los usuarios con ID 0 y 1 que son los usuarios Anonymous y Admin respectivamente.

Algunos pueden verse tentados a solo hacer un borrado en la tabla users, pero desde Drupal 7 User es un Entity por lo tanto puede tener infinidad de campos y datos en las tablas de cada campo, por eso es mejor garantizar que estamos haciendo un borrado del usuario del sistema y de esta forma no dejar información huérfana en nuestra base de datos.

De esta forma podermos usar el anterior script y ajustarlo a nuestras necesidades.

Para ejecutar el comando solo debemos hacer el siguiente llamado.

$ drush php-script bulk_delete_users.php

Espero que haya sido de su agrado.

bursa esc
bursa eskort
bursa escort bayan bursa travesti escort bursa merkez escort bursaescort bursa escort bayanlar alanya eskort bayan antalya bayan eskort havalimanı transfer