/** * Apply database updates whenever needed * * @return boolean */ public static function applyAllUpdates() { Mage::app()->setUpdateMode(true); self::$_hadUpdates = false; $resources = Mage::getConfig()->getNode('global/resources')->children(); $afterApplyUpdates = array(); foreach ($resources as $resName => $resource) { if (!$resource->setup) { continue; } $className = __CLASS__; if (isset($resource->setup->class)) { $className = $resource->setup->getClassName(); } $setupClass = new $className($resName); $setupClass->applyUpdates(); if ($setupClass->getCallAfterApplyAllUpdates()) { $afterApplyUpdates[] = $setupClass; } } foreach ($afterApplyUpdates as $setupClass) { $setupClass->afterApplyAllUpdates(); } Mage::app()->setUpdateMode(false); self::$_schemaUpdatesChecked = true; return true; }