You are here

function drush_search_api_grouping_clean_tracking_table in Search API Grouping 7.2

Cleans the index table and ensures there are no orphaned ids.

File

./search_api_grouping.drush.inc, line 99
Drush commands for search api denormalized entity

Code

function drush_search_api_grouping_clean_tracking_table($index_id = NULL) {
  if (search_api_drush_static(__FUNCTION__)) {
    return;
  }
  $indexes = search_api_drush_get_index($index_id);
  if (empty($indexes)) {
    drush_log(dt('No indexes found', array()), 'warning');
    return;
  }
  foreach ($indexes as $index) {
    if ($index
      ->datasource() instanceof SearchApiDenormalizedEntityDataSourceController) {
      drush_log(dt('!index: start cleaning.', array(
        '!index' => $index->machine_name,
      )), 'ok');
      $deleted_ids = $index
        ->datasource()
        ->cleanTable();
      drush_log(dt('!index: cleaning done. !amount orphaned items deleted.', array(
        '!index' => $index->machine_name,
        '!amount' => $deleted_ids,
      )), 'ok');
    }
    else {
      drush_log(dt('!index has no denormalized datasource - skipped', array(
        '!index' => $index->machine_name,
      )), 'notice');
    }
  }
}