コード例 #1
0
 private function createDatabase($mediawiki_path)
 {
     $schema = strtr('plugin_mediawiki_' . $this->project_id, '-', '_');
     $table_file = $mediawiki_path . '/maintenance/tables.sql';
     $main_db = ForgeConfig::get('sys_dbname');
     db_query('START TRANSACTION;');
     try {
         $this->logger->info('Creating schema ' . $schema);
         $create_db = db_query_params('CREATE SCHEMA ' . $schema, array());
         if (!$create_db) {
             throw new Exception('Error: Schema Creation Failed: ' . db_error());
         }
         $this->logger->info('Updating mediawiki database.');
         if (!file_exists($table_file)) {
             throw new Exception('Error: Couldn\'t find Mediawiki Database Creation File ' . $table_file);
         }
         $this->logger->info('Using schema: ' . $schema);
         $use_new_schema = db_query('USE ' . $schema);
         if (!$use_new_schema) {
             throw new Exception('Error: DB Query Failed: ' . db_error());
         }
         $this->logger->info('Running db_query_from_file(' . $table_file . ')');
         $add_tables = db_query_from_file($table_file);
         if (!$add_tables) {
             throw new Exception('Error: Mediawiki Database Creation Failed: ' . db_error());
         }
         $this->logger->info('Updating list of mediawiki databases (' . $schema . ')');
         db_query('USE ' . $main_db);
         $update = $this->dao->addDatabase($schema, $this->project_id);
         if (!$update) {
             throw new Exception('Error: Mediawiki Database list update failed: ' . mysql_error());
         }
     } catch (Exception $e) {
         db_query('ROLLBACK;');
         $this->logger->error($e->getMessage());
     }
     db_query('COMMIT;');
     $this->logger->info('Using schema: ' . $main_db);
     db_query('USE ' . $main_db);
 }
コード例 #2
0
ファイル: create-wikis.php プロジェクト: pombredanne/tuleap
     $err = "Error: Couldn't find Mediawiki Database Creation File {$table_file}!";
     cron_debug($err);
     cron_entry(23, $err);
     db_rollback();
     exit;
 }
 $res = db_query_params("SET search_path={$schema}", array());
 if (!$res) {
     $err = "Error: DB Query Failed: " . db_error();
     cron_debug($err);
     cron_entry(23, $err);
     db_rollback();
     exit;
 }
 $creation_query = file_get_contents($table_file);
 $res = db_query_from_file($table_file);
 if (!$res) {
     $err = "Error: Mediawiki Database Creation Failed: " . db_error();
     cron_debug($err);
     cron_entry(23, $err);
     db_rollback();
     exit;
 }
 $res = db_query_params("CREATE TEXT SEARCH CONFIGURATION {$schema}.default ( COPY = pg_catalog.english )", array());
 if (!$res) {
     $err = "Error: DB Query Failed: " . db_error();
     cron_debug($err);
     cron_entry(23, $err);
     db_rollback();
     exit;
 }