コード例 #1
0
 /**
  * Run module modification files. Return version of last applied upgrade (false if no upgrades applied)
  * @param string $actionType
  * @param string $fromVersion
  * @param string $toVersion
  * @return false|string
  * @throws \Magento\Framework\Exception
  */
 protected function _modifyResourceDb($actionType, $fromVersion, $toVersion)
 {
     $files = $this->_getAvailableDataFiles($actionType, $fromVersion, $toVersion);
     if (empty($files) || !$this->getConnection()) {
         return false;
     }
     $version = false;
     foreach ($files as $file) {
         $fileName = $file['fileName'];
         $fileType = pathinfo($fileName, PATHINFO_EXTENSION);
         $this->getConnection()->disallowDdlCache();
         try {
             switch ($fileType) {
                 case 'php':
                     $result = $this->_includeFile($fileName);
                     break;
                 case 'sql':
                     $sql = $this->modulesDir->readFile($this->modulesDir->getRelativePath($fileName));
                     if (!empty($sql)) {
                         $result = $this->run($sql);
                     } else {
                         $result = true;
                     }
                     break;
                 default:
                     $result = false;
                     break;
             }
             if ($result) {
                 $this->_resource->setDataVersion($this->_resourceName, $file['toVersion']);
                 $this->_logger->info($fileName);
             } else {
                 $this->_logger->info("Failed resource setup: {$fileName}");
             }
         } catch (\Exception $e) {
             throw new \Magento\Framework\Exception(sprintf('Error in file: "%s" - %s', $fileName, $e->getMessage()), 0, $e);
         }
         $version = $file['toVersion'];
         $this->getConnection()->allowDdlCache();
     }
     return $version;
 }
コード例 #2
0
 /**
  * Save resource version
  *
  * @param string $actionType
  * @param string $version
  * @return $this
  */
 protected function _setResourceVersion($actionType, $version)
 {
     switch ($actionType) {
         case self::TYPE_DB_INSTALL:
         case self::TYPE_DB_UPGRADE:
             $this->_resourceResource->setDbVersion($this->_resourceName, $version);
             break;
         case self::TYPE_DATA_INSTALL:
         case self::TYPE_DATA_UPGRADE:
             $this->_resourceResource->setDataVersion($this->_resourceName, $version);
             break;
         default:
             break;
     }
     return $this;
 }