/**
  * @see LoggedUpdateMaintenance::doDBUpdates
  *
  * @return bool
  */
 public function doDBUpdates()
 {
     if (!defined('WB_VERSION')) {
         $this->output("You need to have Wikibase enabled in order to use this maintenance script!\n\n");
         exit;
     }
     $batchSize = (int) $this->getOption('batch-size', 100);
     $rebuildAll = $this->getOption('rebuild-all', false);
     $reporter = new ObservableMessageReporter();
     $reporter->registerReporterCallback(array($this, 'report'));
     $wikibaseRepo = WikibaseRepo::getDefaultInstance();
     $builder = new EntityPerPageBuilder($wikibaseRepo->getStore()->newEntityPerPage(), $wikibaseRepo->getEntityIdParser(), $wikibaseRepo->getEntityNamespaceLookup(), $wikibaseRepo->getContentModelMappings());
     $builder->setReporter($reporter);
     $builder->setBatchSize($batchSize);
     $builder->setRebuildAll($rebuildAll);
     $builder->rebuild();
     return true;
 }
 public function testRebuildPartial()
 {
     $pageId = $this->getPageIdForPartialClear();
     $this->partialClearEntityPerPageTable($pageId);
     $this->assertEquals(6, $this->countEntityPerPageRows());
     $builder = new EntityPerPageBuilder($this->entityPerPageTable, $this->wikibaseRepo->getEntityIdParser(), $this->wikibaseRepo->getEntityNamespaceLookup(), $this->wikibaseRepo->getContentModelMappings());
     $builder->rebuild();
     $this->assertEquals(count($this->entityPerPageRows), $this->countEntityPerPageRows());
     $this->assertRows($this->entityPerPageRows);
 }