Ejemplo n.º 1
0
                        RIGHT JOIN user_department ON hierarchy.id = user_department.department
                    WHERE hierarchy.id IS NULL', function ($item) {
                Recycle::deleteObject('user_department', $item->id, 'id');
            });
            Database::get()->query('ALTER TABLE user_department CHANGE `user` `user` INT(11) NOT NULL');
            Database::get()->query('ALTER IGNORE TABLE `user_department`
                ADD UNIQUE KEY `udep_unique` (`user`,`department`),
                ADD FOREIGN KEY (user) REFERENCES user(id) ON DELETE CASCADE,
                ADD FOREIGN KEY (department) REFERENCES hierarchy(id) ON DELETE CASCADE');
        }

        // Unique and foreign keys for course_department table
        if (DBHelper::indexExists('course_department', 'cdep_index')) {
            Database::get()->query('DROP INDEX `cdep_index` ON course_department');
        }
        if (!DBHelper::indexExists('course_department', 'cdep_unique')) {
            Database::get()->queryFunc('SELECT course_department.id FROM course
                        RIGHT JOIN course_department ON course.id = course_department.course
                    WHERE course.id IS NULL', function ($item) {
                Recycle::deleteObject('course_department', $item->id, 'id');
            });
            Database::get()->queryFunc('SELECT course_department.id FROM hierarchy
                        RIGHT JOIN course_department ON hierarchy.id = course_department.department
                    WHERE hierarchy.id IS NULL', function ($item) {
                Recycle::deleteObject('course_department', $item->id, 'id');
            });
            Database::get()->query('ALTER IGNORE TABLE `course_department`
                ADD UNIQUE KEY `cdep_unique` (`course`,`department`),
                ADD FOREIGN KEY (course) REFERENCES course(id) ON DELETE CASCADE,
                ADD FOREIGN KEY (department) REFERENCES hierarchy(id) ON DELETE CASCADE');
        }
Ejemplo n.º 2
0
 DBHelper::indexExists('log', 'log_course_id') or Database::get()->query("CREATE INDEX `log_course_id` ON log (course_id)");
 DBHelper::indexExists('log', 'log_module_id') or Database::get()->query("CREATE INDEX `log_module_id` ON log (module_id)");
 DBHelper::indexExists('logins', 'logins_id_user_id') or Database::get()->query("CREATE INDEX `logins_id_user_id` ON logins(user_id)");
 DBHelper::indexExists('logins', 'logins_id_course_id') or Database::get()->query("CREATE INDEX `logins_id_course_id` ON logins(course_id)");
 DBHelper::indexExists('lp_rel_learnPath_module', 'lp_rel_learnPath_id') or Database::get()->query("CREATE INDEX `lp_rel_learnPath_id` ON lp_rel_learnPath_module(learnPath_id)");
 DBHelper::indexExists('lp_rel_learnPath_module', 'lp_rel_learnPath_id') or Database::get()->query("CREATE INDEX `lp_rel_module_id` ON lp_rel_learnPath_module(module_id)");
 DBHelper::indexExists('lp_user_module_progress', 'lp_learnPath_module_id') or Database::get()->query("CREATE INDEX `lp_learnPath_module_id` ON lp_user_module_progress (learnPath_module_id)");
 DBHelper::indexExists('lp_user_module_progress', 'lp_user_id') or Database::get()->query("CREATE INDEX `lp_user_id` ON lp_user_module_progress (user_id)");
 DBHelper::indexExists('poll_answer_record', 'poll_ans_id_user_id') or Database::get()->query("CREATE INDEX `poll_ans_id_user_id` ON poll_answer_record(user_id)");
 DBHelper::indexExists('poll_answer_record', 'poll_ans_id_user_id') or Database::get()->query("CREATE INDEX `poll_ans_id_pid` ON poll_answer_record(pid)");
 DBHelper::indexExists('unit_resources', 'unit_res_unit_id') or Database::get()->query("CREATE INDEX `unit_res_unit_id` ON unit_resources (unit_id)");
 DBHelper::indexExists('unit_resources', 'unit_res_visible') or Database::get()->query("CREATE INDEX `unit_res_visible` ON unit_resources (visible)");
 DBHelper::indexExists('unit_resources', 'unit_res_res_id') or Database::get()->query("CREATE INDEX `unit_res_res_id` ON unit_resources (res_id)");
 DBHelper::indexExists('personal_calendar', 'pcal_start') or Database::get()->query('CREATE INDEX `pcal_start` ON personal_calendar (start)');
 DBHelper::indexExists('agenda', 'agenda_start') or Database::get()->query('CREATE INDEX `agenda_start` ON agenda (start)');
 DBHelper::indexExists('assignment', 'assignment_deadline') or Database::get()->query('CREATE INDEX `assignment_deadline` ON assignment (deadline)');
 // **********************************************
 // upgrade courses databases
 // **********************************************
 $res = Database::get()->queryArray("SELECT id, code, lang FROM course ORDER BY code");
 $total = count($res);
 $i = 1;
 foreach ($res as $row) {
     updateInfo($i / ($total + 1), $langUpgCourse);
     if (version_compare($oldversion, '2.2', '<')) {
         updateInfo(-1, $langUpgCourse . " " . $row->code . " 2.2");
         upgrade_course_2_2($row->code, $row->lang);
     }
     if (version_compare($oldversion, '2.3', '<')) {
         updateInfo(-1, $langUpgCourse . " " . $row->code . " 2.3");
         upgrade_course_2_3($row->code);
Ejemplo n.º 3
0
/**
 * @brief upgrade to 2.8
 * @global type $langUpgCourse
 * @global type $global_messages
 * @param type $code
 * @param type $lang
 * @param type $extramessage
 * 
 */
function upgrade_course_2_8($code, $lang) {

    global $langUpgCourse, $global_messages;

    Database::get()->query("USE `$code`");
    
    DBHelper::fieldExists('exercices', 'public', $code) or
            Database::get()->query("ALTER TABLE `exercices` ADD `public` TINYINT(4) NOT NULL DEFAULT 1 AFTER `active`");
    DBHelper::fieldExists('video', 'visible', $code) or
            Database::get()->query("ALTER TABLE `video` ADD `visible` TINYINT(4) NOT NULL DEFAULT 1 AFTER `date`");
    DBHelper::fieldExists('video', 'public', $code) or
            Database::get()->query("ALTER TABLE `video` ADD `public` TINYINT(4) NOT NULL DEFAULT 1");
    DBHelper::fieldExists('videolinks', 'visible', $code) or
            Database::get()->query("ALTER TABLE `videolinks` ADD `visible` TINYINT(4) NOT NULL DEFAULT 1 AFTER `date`");
    DBHelper::fieldExists('videolinks', 'public', $code) or
            Database::get()->query("ALTER TABLE `videolinks` ADD `public` TINYINT(4) NOT NULL DEFAULT 1");
    if (DBHelper::indexExists('dropbox_file', 'UN_filename', $code)) {
        Database::get()->query("ALTER TABLE dropbox_file DROP index UN_filename");
    }
    Database::get()->query("ALTER TABLE dropbox_file CHANGE description description VARCHAR(500)");
    Database::get()->query("UPDATE accueil SET rubrique = " . quote($global_messages['langDropBox'][$lang]) . "
                                    WHERE id = 16 AND define_var = 'MODULE_ID_DROPBOX'");
}