/**
  * @see LoggedUpdateMaintenance::doDBUpdates
  *
  * @throws EntityIdParsingException
  * @return bool
  */
 public function doDBUpdates()
 {
     if (!defined('WB_VERSION')) {
         $this->error("You need to have Wikibase enabled in order to use this maintenance script!", 1);
     }
     $idParser = WikibaseRepo::getDefaultInstance()->getEntityIdParser();
     $startItemOption = $this->getOption('start-item');
     $startItem = $startItemOption === null ? null : $idParser->parse($startItemOption);
     if ($startItem !== null && !$startItem instanceof ItemId) {
         throw new EntityIdParsingException('Not an Item ID: ' . $startItemOption);
     }
     $verbose = (bool) $this->getOption('verbose', false);
     $reporter = new ObservableMessageReporter();
     $reporter->registerReporterCallback(array($this, 'report'));
     $builder = new ChangesSubscriptionTableBuilder(wfGetLB(), 'wb_changes_subscription', $this->mBatchSize, $verbose ? 'verbose' : 'standard');
     $builder->setProgressReporter($reporter);
     $builder->setExceptionHandler(new ReportingExceptionHandler($reporter));
     $builder->fillSubscriptionTable($startItem);
     return true;
 }