Exemple #1
0
/**
 * 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");
        }
    }
}