Example #1
0
 /**
  * Function to reinstall database structure and load default population
  * @param boolean $loadDefaultPop specifies whether or not to install the default population
  * @return void
  */
 public function reinstallDB($installDefaultPop = true)
 {
     $queries = file_get_contents(Config::get('pathToGeneratedFiles') . 'mysql-installer.json');
     $queries = json_decode($queries, true);
     $this->logger->info("Start database reinstall");
     $this->logger->info("Execute database structure queries");
     foreach ($queries['allDBstructQueries'] as $query) {
         $this->Exe($query);
         set_time_limit((int) ini_get('max_execution_time'));
         // reset time limit counter to handle large amounts of create table / index queries.
     }
     if ($installDefaultPop) {
         $this->logger->info("Install default population");
         if (Config::get('checkDefaultPopulation', 'transactions')) {
             $this->startTransaction();
         }
         foreach ($queries['allDefPopQueries'] as $query) {
             $this->Exe($query);
             set_time_limit((int) ini_get('max_execution_time'));
             // reset time limit counter to handle large amounts of default population queries.
         }
     } else {
         $this->logger->info("Skip default population");
     }
     // Ininiate new session
     Session::reInit();
     Hooks::callHooks('postDatabaseReinstallDB', get_defined_vars());
     $this->logger->info("Database reinstalled");
     // Initial conjunct evaluation
     Conjunct::evaluateConjuncts(null, true);
     // Evaluate, cache and store all conjuncts, not only those that are affected (done by closeTransaction() function)
     $this->closeTransaction('Database successfully reinstalled', true);
 }