23
Aug.2019
Drupal 10: Remove all medias entities from the site programmatically
Sometimes we need to completely remove media entities, for example, when you copy a site for another project.
You can use custom code in your custom module or install devel_php and run with admin interface on /devel/php.
Below are two examples.
For small and middle websites.
$ids = \Drupal::entityQuery('media')->execute(); $storageHandler = \Drupal::entityTypeManager()->getStorage('media'); $entities = $storageHandler->loadMultiple($ids); $storageHandler->delete($entities);
For large websites, when you have, for example, 20k+ entities.
$ids = \Drupal::entityQuery('media')->execute(); $storageHandler = \Drupal::entityTypeManager()->getStorage('media'); $entities = $storageHandler->loadMultiple($ids); foreach ($entities as $entity) { $entity->delete(); }
Works in case if you want to load all media by bundle/type and delete after.
$ids = \Drupal::entityQuery('media')->condition('bundle', 'remote_video')->execute(); $storageHandler = \Drupal::entityTypeManager()->getStorage('media'); $entities = $storageHandler->loadMultiple($ids); foreach ($entities as $entity) { $entity->delete(); }
Comments