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