/** * Rename a table column * Use this only on aleady "abstracted" tables. * * @param string table name * @param string old column name * @param string new column name */ function renameTableColumn($a_table, $a_column, $a_new_column) { // check table name if (!$this->checkColumnName($a_new_column)) { $this->raisePearError("ilDB Error: renameTableColumn(" . $a_table . "," . $a_column . "," . $a_new_column . ")<br />" . $this->error_str); } $manager = $this->db->loadModule('Manager'); $reverse = $this->db->loadModule('Reverse'); $def = $reverse->getTableFieldDefinition($a_table, $a_column); $this->handleError($def, "renameTableColumn(" . $a_table . "," . $a_column . "," . $a_new_column . ")"); if (is_file("./Services/Database/classes/class.ilDBAnalyzer.php")) { include_once "./Services/Database/classes/class.ilDBAnalyzer.php"; } else { include_once "../Services/Database/classes/class.ilDBAnalyzer.php"; } $analyzer = new ilDBAnalyzer(); $best_alt = $analyzer->getBestDefinitionAlternative($def); $def = $def[$best_alt]; unset($def["nativetype"]); unset($def["mdb2type"]); $f["definition"] = $def; $f["name"] = $a_new_column; $changes = array("rename" => array($a_column => $f)); $r = $manager->alterTable($a_table, $changes, false); return $this->handleError($r, "renameTableColumn(" . $a_table . "," . $a_column . "," . $a_new_column . ")"); }