Si, como yo, prefiere un enfoque de Python (probablemente raro, pero aún así), esta es una forma transparente y efectiva de solucionar este problema:
import os
# Build up a variable containing the usernames
# This list was built using drush sql-cli, then
# SELECT name FROM users
# where $your-where-condition
# order by uid asc
# INTO
# OUTFILE '/tmp/users.csv'
# FIELDS TERMINATED BY ','
# ENCLOSED BY '"'
# lines terminated by ', ' ;
users = [result from SQL goes here]
for user in users:
print("Deleting spam user: %s..." % user),
os.system('drush --yes -r $your-path-to-drupal -l $your-site-url user-cancel --delete-content %s > /dev/null' % user)
print 'Done'
Los pasos son básicamente:
- Inicie sesión en su base de datos con
drush sql-cli -r $your-path-to-drupal -l $your-site-url
- Ejecute el SQL anterior con su propia condición where y pegue los resultados en la variable de usuario.
- Actualice su ruta de drupal y el nombre del sitio en el comando drush
- Ejecute el script con
python delete-users.py
Estoy seguro de que hay una mejor manera de hacerlo, pero esta es mi solución pirateada que funciona bien.
select all
botón que selecciona todos los elementos en todas las páginas. ¡Haga clic y Kill-em-all!