Fixing missing indexes

article on how to walk your whole wiki which will update the indexes (Archived link)

Fix missing change history

  1. Copy lib/plugins/importoldchangelog directories into your lib/plugins tree
  2. Make backup copy of indexer.php (current this is named lib/exe/taskrunner.php)
    cp lib/exe/indexer.php lib/exe/indexer.php.save
  3. copy lib/exe/indexer.php into your tree
  4. Edit the file as follows
        // Import old changelog (if needed)
        // Uses the imporoldchangelog plugin to upgrade the changelog automaticaly.
        // FIXME: Remove this from runTrimRecentChanges when it is no longer needed.
        if (isset($conf['changelog_old']) &&
            @file_exists($conf['changelog_old']) && !@file_exists($conf['changelog']) &&
            !@file_exists($conf['changelog'].'_importing') && !@file_exists($conf['changelog'].'_tmp')) {
                $tmp = array(); // no event data
                trigger_event('TEMPORARY_CHANGELOG_UPGRADE_EVENT', $tmp);
                return true;
        }
    +    trigger_event('TEMPORARY_CHANGELOG_UPGRADE_EVENT', $tmp);
    +    return true;
  5. Make sure you increase the max memory and runtime in your php.ini, and then hit the home page with ?do=check
  6. It may take a while. You probably don't want to do this on a live wiki
  7. Then after it's done (watch your error log to see if it times out or runs out of memory, if so increase the limits), restore the original indexer.php, and remove the plugin
  8. Thanks to Chimeric for help figuring this out!