Example #1
0
 /**
  * @return void
  */
 protected function optionReset()
 {
     if ($this->getArg('reset') === true) {
         $this->logger->info('Reset the current position of migration to start from the beginning');
         $this->progress->reset();
     }
 }
 /**
  * {@inheritdoc}
  */
 protected function integrity()
 {
     $errors = false;
     $this->progress->start(count($this->structure[MapInterface::TYPE_SOURCE]) + count($this->structure[MapInterface::TYPE_DEST]));
     foreach ($this->structure as $resourceName => $documentList) {
         $resource = $resourceName == MapInterface::TYPE_SOURCE ? $this->source : $this->destination;
         foreach ($documentList as $documentName => $documentFields) {
             $this->progress->advance();
             $document = $resource->getDocument($documentName);
             if ($document === false) {
                 $message = sprintf('%s table does not exist: %s', ucfirst($resourceName), $documentName);
                 $this->logger->error($message);
                 $errors = true;
                 continue;
             }
             $structure = array_keys($document->getStructure()->getFields());
             if (!(empty(array_diff($structure, $documentFields)) && empty(array_diff($documentFields, $structure)))) {
                 $message = sprintf('%s table structure does not meet expectation: %s', ucfirst($resourceName), $documentName);
                 $this->logger->error($message);
                 $errors = true;
             }
         }
     }
     $this->progress->finish();
     $result = !$errors && !$this->processDuplicatesList();
     if ($result) {
         $this->logger->info('Integrity check passed');
     }
     return $result;
 }
Example #3
0
 /**
  * @param StageInterface $object
  * @param string $step
  * @param string $stage
  * @return bool
  */
 protected function runStage($object, $step, $stage)
 {
     $this->logger->info('started', ['step' => $step, 'stage' => $stage, 'mode' => $this->mode]);
     if ($this->progress->isCompleted($object, $stage)) {
         return true;
     }
     try {
         $result = $object->perform();
     } catch (\Migration\Exception $e) {
         $this->logger->error($e->getMessage());
         return false;
     }
     if ($result && $this->canBeCompleted) {
         $this->progress->saveResult($object, $stage, $result);
     }
     return $result;
 }