Пример #1
0
 protected function _dbUpdates()
 {
     $this->_runningUpdates = true;
     $executed_updates = array();
     foreach ($this->repo('DbUpdate')->findAll() as $up) {
         $executed_updates[] = $up->name;
     }
     $updates = (include DB_UPDATES_FILE);
     $new_updates = false;
     foreach ($updates as $name => $function) {
         if (!in_array($name, $executed_updates)) {
             $new_updates = true;
             echo "\nApplying db update \"{$name}\":";
             echo "\n-------------------------------------------------------------------------------------------------------\n";
             if ($function() !== false) {
                 $up = new Entities\DbUpdate();
                 $up->name = $name;
                 $up->save();
             }
             echo "\n-------------------------------------------------------------------------------------------------------\n\n";
         }
     }
     if ($new_updates) {
         $this->_em->flush();
         $this->cache->deleteAll();
     }
     $this->_runningUpdates = false;
 }
Пример #2
0
 protected function _dbUpdates()
 {
     $this->disableAccessControl();
     $executed_updates = [];
     foreach ($this->repo('DbUpdate')->findAll() as $up) {
         $executed_updates[] = $up->name;
     }
     $updates = (include DB_UPDATES_FILE);
     foreach ($this->view->path as $path) {
         $db_update_file = $path . 'db-updates.php';
         if (file_exists($db_update_file)) {
             $updates += (include $db_update_file);
         }
     }
     $new_updates = false;
     foreach ($updates as $name => $function) {
         if (!in_array($name, $executed_updates)) {
             $new_updates = true;
             echo "\nApplying db update \"{$name}\":";
             echo "\n-------------------------------------------------------------------------------------------------------\n";
             try {
                 if ($function() !== false) {
                     $up = new Entities\DbUpdate();
                     $up->name = $name;
                     $up->save();
                 }
             } catch (\Exception $e) {
                 echo "\nERROR " . $e . "\n";
             }
             echo "\n-------------------------------------------------------------------------------------------------------\n\n";
         }
     }
     if ($new_updates) {
         $this->_em->flush();
         $this->cache->deleteAll();
     }
     $this->enableAccessControl();
 }