/** * Upgrades a Version 23 version of the Yioop! database to a Version 24 version * @param object $db datasource to use to upgrade */ function upgradeDatabaseVersion24(&$db) { /** Get base class for profile_model.php*/ require_once BASE_DIR . "/models/model.php"; /** For ProfileModel::createDatabaseTables method */ require_once BASE_DIR . "/models/profile_model.php"; $db->execute("DELETE FROM VERSION WHERE ID < 23"); $db->execute("UPDATE VERSION SET ID=24 WHERE ID=23"); $profile_model = new ProfileModel(DB_NAME, false); $profile_model->db = $db; $dbinfo = array("DBMS" => DBMS, "DB_HOST" => DB_HOST, "DB_USER" => DB_USER, "DB_PASSWORD" => DB_PASSWORD, "DB_NAME" => DB_NAME); $profile_model->initializeSql($db, $dbinfo); foreach ($profile_model->create_statements as $object_name => $statement) { if (stristr($object_name, "_INDEX")) { if (!$db->execute($statement)) { echo $statement . " ERROR!"; exit; } } else { if (!$db->execute("ALTER TABLE {$object_name} RENAME TO " . $object_name . "_OLD")) { echo "RENAME {$object_name} ERROR!"; exit; } if (!$db->execute($statement)) { echo $statement . " ERROR!"; exit; } DatasourceManager::copyTable($object_name . "_OLD", $db, $object_name, $db); $db->execute("DROP TABLE " . $object_name . "_OLD"); } } }