/**
  * 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;
 }