<?php


$use_mysql = false;

$services = PhabricatorSearchService::getAllServices();
foreach ($services as $service) {
  $engine = $service->getEngine();
  if ($engine instanceof PhabricatorMySQLFulltextStorageEngine) {
    $use_mysql = true;
  }
}

if ($use_mysql) {
  $field = new PhabricatorSearchDocumentField();
  $conn = $field->establishConnection('r');

  // We're only going to require this if the index isn't empty: if you're on a
  // fresh install, you don't have to do anything.
  $any_documents = queryfx_one(
    $conn,
    'SELECT * FROM %T LIMIT 1',
    $field->getTableName());

  if ($any_documents) {
    try {
      id(new PhabricatorConfigManualActivity())
        ->setActivityType(PhabricatorConfigManualActivity::TYPE_REINDEX)
        ->save();
    } catch (AphrontDuplicateKeyQueryException $ex) {
      // If we've already noted that this activity is required, just move on.
    }
  }
}