
En aquest article t'explique una alternativa al mòdul Delete All de Drupal perquè també podem esborrar nodes de Drupal de manera massiva amb codi PHP des del mòdul PHP Devel.
Els mòduls que cal instal·lar son devel i Devel PHP que tenim a la web oficial del projecte Drupal.
Descarreguem els dos mòduls amb:
$ doas wget https://ftp.drupal.org/files/projects/devel-5.3.1.tar.gz
$ doas wget https://ftp.drupal.org/files/projects/devel_php-8.x-1.7.tar.gz
Descomprimim els tar.gz amb:
$ doas tar xvfz devel-5.3.1.tar.gz
$ doas tar xvfz devel_php-8.x-1.7.tar.gz
Instal·lem els mòduls des de la part d'administració de Drupal:
I en pocs segons ja estaran instal·lats:
Ara entrarem en la configuració del mòdul i afegirem l'opció d'executar codi PHP personalitzat:
I executem el codi:
$result = \Drupal::entityQuery("node")
->condition("type", "article")
->accessCheck(FALSE)
->execute();
#
$storage_handler = \Drupal::entityTypeManager()->getStorage("node");
$entities = $storage_handler->loadMultiple($result);
$storage_handler->delete($entities);
Ací tens una captura de pantalla de com queda:
O podem fer-ho d'una manera alternativa, amb el següent codi, més curt:
$storage_handler = \Drupal::entityTypeManager()->getStorage("node");
$entities = $storage_handler->loadByProperties([
"type" => "article",
]);
$storage_handler->delete($entities);
Ací tens una captura de pantalla de com queda:
I finalment ja no tenim cap contingut de tipus "article" en la base de dades: