예제 #1
0
 /**
  * Apply database scheme updates whenever needed
  *
  * @return void
  */
 public function updateScheme()
 {
     if ($this->_shouldSkipProcessModulesUpdates()) {
         return;
     }
     \Magento\Framework\Profiler::start('apply_db_schema_updates');
     $this->_appState->setUpdateMode(true);
     $afterApplyUpdates = array();
     foreach (array_keys($this->_moduleList->getModules()) as $moduleName) {
         foreach ($this->_resourceResolver->getResourceList($moduleName) as $resourceName) {
             $setup = $this->_setupFactory->create($resourceName, $moduleName);
             $setup->applyUpdates();
             if ($setup->getCallAfterApplyAllUpdates()) {
                 $afterApplyUpdates[] = $setup;
             }
         }
     }
     /** @var $setup \Magento\Framework\Module\Updater\SetupInterface*/
     foreach ($afterApplyUpdates as $setup) {
         $setup->afterApplyAllUpdates();
     }
     $this->_appState->setUpdateMode(false);
     $this->_isUpdatedSchema = true;
     \Magento\Framework\Profiler::stop('apply_db_schema_updates');
 }
예제 #2
0
 public function testSetGetUpdateMode()
 {
     $this->assertFalse($this->model->getUpdateMode());
     $this->model->setUpdateMode(true);
     $this->assertTrue($this->model->getUpdateMode());
 }