migrate-db-1.8.6.2-1.8.7-pre.sql 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. -- This script updates the databases structure before migrating the data from
  2. -- version 1.8.6.2 to version 1.8.7
  3. -- it is intended as a standalone script, however, because of the multiple
  4. -- databases related difficulties, it should be parsed by a PHP script in
  5. -- order to connect to and update the right databases.
  6. -- There is one line per query, allowing the PHP function file() to read
  7. -- all lines separately into an array. The xxMAINxx-type markers are there
  8. -- to tell the PHP script which database we're talking about.
  9. -- By always using the keyword "TABLE" in the queries, we should be able
  10. -- to retrieve and modify the table name from the PHP script if needed, which
  11. -- will allow us to deal with the unique-database-type installations
  12. --
  13. -- This first part is for the main database
  14. -- xxMAINxx
  15. DROP PROCEDURE IF EXISTS drop_index;
  16. CREATE PROCEDURE drop_index(in t_name varchar(128), in i_name varchar(128) ) BEGIN IF ( (SELECT count(*) AS index_exists FROM information_schema.statistics WHERE table_schema = DATABASE( ) AND table_name = t_name AND index_name = i_name ) > 0) THEN SET @s = CONCAT('DROP INDEX ' , i_name , ' ON ' , t_name ); PREPARE stmt FROM @s; EXECUTE stmt; END IF; END;
  17. CALL drop_index('settings_current', 'unique_setting');
  18. CALL drop_index('settings_options', 'unique_setting_option');
  19. ALTER TABLE user_friend RENAME TO user_rel_user;
  20. ALTER TABLE session_rel_user ADD COLUMN relation_type int NOT NULL default 0;
  21. ALTER TABLE course_rel_user ADD COLUMN relation_type int NOT NULL default 0;
  22. -- see #4705 INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url, access_url_changeable) VALUES ('course_create_active_tools','notebook','checkbox','Tools','true','CourseCreateActiveToolsTitle','CourseCreateActiveToolsComment',NULL,'Notebook',1,0);
  23. ALTER TABLE course DROP PRIMARY KEY , ADD UNIQUE KEY code (code);
  24. ALTER TABLE course ADD id int NOT NULL auto_increment PRIMARY KEY FIRST;
  25. CREATE TABLE block (id INT NOT NULL auto_increment, name VARCHAR(255) NULL, description TEXT NULL, path VARCHAR(255) NOT NULL, controller VARCHAR(100) NOT NULL, active TINYINT NOT NULL default 1, PRIMARY KEY(id));
  26. ALTER TABLE block ADD UNIQUE(path);
  27. INSERT INTO user_field(field_type, field_variable, field_display_text, field_visible, field_changeable) VALUES(1, 'dashboard', 'Dashboard', 0, 0);
  28. INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES('show_tabs', 'dashboard', 'checkbox', 'Platform', 'true', 'ShowTabsTitle','ShowTabsComment',NULL,'TabsDashboard', 1);
  29. INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES('use_users_timezone', 'timezones', 'radio', 'Timezones', 'true', 'UseUsersTimezoneTitle','UseUsersTimezoneComment',NULL,'Timezones', 1);
  30. INSERT INTO settings_options (variable, value, display_text) VALUES ('use_users_timezone', 'true', 'Yes');
  31. INSERT INTO settings_options (variable, value, display_text) VALUES ('use_users_timezone', 'false', 'No');
  32. INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES('timezone_value', 'timezones', 'select', 'Timezones', '', 'TimezoneValueTitle','TimezoneValueComment',NULL,'Timezones', 1);
  33. ALTER TABLE user_field CHANGE tms tms DATETIME NOT NULL default '0000-00-00 00:00:00';
  34. ALTER TABLE course_field CHANGE tms tms DATETIME NOT NULL default '0000-00-00 00:00:00';
  35. ALTER TABLE course_field_values CHANGE tms tms DATETIME NOT NULL default '0000-00-00 00:00:00';
  36. ALTER TABLE session_field CHANGE tms tms DATETIME NOT NULL default '0000-00-00 00:00:00';
  37. ALTER TABLE session_field_values CHANGE tms tms DATETIME NOT NULL default '0000-00-00 00:00:00';
  38. ALTER TABLE user_field_options CHANGE tms tms DATETIME NOT NULL default '0000-00-00 00:00:00';
  39. ALTER TABLE user_field_values CHANGE tms tms DATETIME NOT NULL default '0000-00-00 00:00:00';
  40. ALTER TABLE access_url CHANGE tms tms DATETIME NOT NULL default '0000-00-00 00:00:00';
  41. ALTER TABLE gradebook_certificate CHANGE date_certificate created_at DATETIME NOT NULL default '0000-00-00 00:00:00';
  42. ALTER TABLE gradebook_evaluation ADD COLUMN created_at DATETIME NOT NULL default '0000-00-00 00:00:00';
  43. UPDATE gradebook_evaluation SET created_at = FROM_UNIXTIME(date);
  44. ALTER TABLE gradebook_evaluation DROP date;
  45. ALTER TABLE gradebook_link ADD COLUMN created_at DATETIME NOT NULL default '0000-00-00 00:00:00';
  46. UPDATE gradebook_link SET created_at = FROM_UNIXTIME(date);
  47. ALTER TABLE gradebook_link DROP date;
  48. ALTER TABLE gradebook_linkeval_log ADD COLUMN created_at DATETIME NOT NULL default '0000-00-00 00:00:00';
  49. UPDATE gradebook_linkeval_log SET created_at = FROM_UNIXTIME(date_log);
  50. ALTER TABLE gradebook_linkeval_log DROP date_log;
  51. ALTER TABLE gradebook_result ADD COLUMN created_at DATETIME NOT NULL default '0000-00-00 00:00:00';
  52. UPDATE gradebook_result SET created_at = FROM_UNIXTIME(date);
  53. ALTER TABLE gradebook_result DROP date;
  54. ALTER TABLE gradebook_result_log CHANGE date_log created_at DATETIME NOT NULL default '0000-00-00 00:00:00';
  55. INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('gradebook_number_decimals', NULL, 'select', 'Gradebook', '0', 'GradebookNumberDecimals', 'GradebookNumberDecimalsComment', NULL, NULL, 0);
  56. INSERT INTO user_field(field_type, field_variable, field_display_text, field_visible, field_changeable) VALUES(11, 'timezone', 'Timezone', 0, 0);
  57. INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('course_create_active_tools','attendances','checkbox','Tools','false','CourseCreateActiveToolsTitle','CourseCreateActiveToolsComment',NULL,'Attendances', 0);
  58. ALTER TABLE user_field_values CHANGE id id BIGINT NOT NULL AUTO_INCREMENT;
  59. ALTER TABLE user_field_values ADD INDEX (user_id, field_id);
  60. UPDATE settings_current SET selected_value = '1.8.7.11571' WHERE variable = 'dokeos_database_version';
  61. ALTER TABLE course_rel_user DROP PRIMARY KEY, ADD PRIMARY KEY (course_code, user_id, relation_type);
  62. ALTER TABLE session_rel_user DROP PRIMARY KEY, ADD PRIMARY KEY (id_session, id_user, relation_type);
  63. INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('course_create_active_tools','course_progress','checkbox','Tools','false','CourseCreateActiveToolsTitle','CourseCreateActiveToolsComment',NULL,'CourseProgress', 0);
  64. INSERT INTO settings_options(variable,value,display_text) VALUES ('homepage_view','vertical_activity','HomepageViewVerticalActivity');
  65. UPDATE settings_current SET selected_value = 'UTF-8' WHERE variable = 'platform_charset';
  66. INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('allow_user_course_subscription_by_course_admin', NULL, 'radio', 'Security', 'true', 'AllowUserCourseSubscriptionByCourseAdminTitle', 'AllowUserCourseSubscriptionByCourseAdminComment', NULL, NULL, 1);
  67. INSERT INTO settings_options (variable, value, display_text) VALUES ('allow_user_course_subscription_by_course_admin', 'true', 'Yes');
  68. INSERT INTO settings_options (variable, value, display_text) VALUES ('allow_user_course_subscription_by_course_admin', 'false', 'No');
  69. INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES ('show_link_bug_notification', NULL, 'radio', 'Platform', 'true', 'ShowLinkBugNotificationTitle', 'ShowLinkBugNotificationComment', NULL, NULL, 0);
  70. INSERT INTO settings_options (variable, value, display_text) VALUES ('show_link_bug_notification', 'true', 'Yes');
  71. INSERT INTO settings_options (variable, value, display_text) VALUES ('show_link_bug_notification', 'false', 'No');
  72. ALTER TABLE gradebook_score_display ADD category_id int NOT NULL DEFAULT 0;
  73. ALTER TABLE gradebook_score_display ADD INDEX (category_id);
  74. ALTER TABLE gradebook_score_display ADD score_color_percent float unsigned NOT NULL DEFAULT 0;
  75. -- xxSTATSxx
  76. CREATE TABLE track_e_item_property(id int NOT NULL auto_increment PRIMARY KEY, course_id int NOT NULL, item_property_id int NOT NULL, title varchar(255), content text, progress int NOT NULL default 0, lastedit_date datetime NOT NULL default '0000-00-00 00:00:00', lastedit_user_id int NOT NULL, session_id int NOT NULL default 0);
  77. ALTER TABLE track_e_item_property ADD INDEX (course_id, item_property_id, session_id);
  78. ALTER TABLE track_e_access ADD access_session_id INT NOT NULL DEFAULT 0;
  79. ALTER TABLE track_e_access ADD INDEX (access_session_id);
  80. ALTER TABLE track_e_course_access ADD session_id INT NOT NULL DEFAULT 0;
  81. ALTER TABLE track_e_course_access ADD INDEX (session_id);
  82. ALTER TABLE track_e_downloads ADD down_session_id INT NOT NULL DEFAULT 0;
  83. ALTER TABLE track_e_downloads ADD INDEX (down_session_id);
  84. ALTER TABLE track_e_links ADD links_session_id INT NOT NULL DEFAULT 0;
  85. ALTER TABLE track_e_links ADD INDEX (links_session_id);
  86. ALTER TABLE track_e_uploads ADD upload_session_id INT NOT NULL DEFAULT 0;
  87. ALTER TABLE track_e_uploads ADD INDEX (upload_session_id);
  88. ALTER TABLE track_e_online ADD session_id INT NOT NULL DEFAULT 0;
  89. ALTER TABLE track_e_online ADD INDEX (session_id);
  90. ALTER TABLE track_e_attempt ADD session_id INT NOT NULL DEFAULT 0;
  91. ALTER TABLE track_e_attempt ADD INDEX (session_id);
  92. ALTER TABLE track_e_attempt_recording ADD session_id INT NOT NULL DEFAULT 0;
  93. ALTER TABLE track_e_attempt_recording ADD INDEX (question_id);
  94. ALTER TABLE track_e_attempt_recording ADD INDEX (session_id);
  95. ALTER TABLE track_e_online ADD COLUMN access_url_id INT NOT NULL DEFAULT 1;
  96. -- xxUSERxx
  97. -- xxCOURSExx
  98. INSERT INTO tool(name,link,image,visibility,admin,address,added_tool,target,category) VALUES ('attendance','attendance/index.php','attendance.gif',0,'0','squaregrey.gif',0,'_self','authoring');
  99. ALTER TABLE course_description ADD COLUMN progress INT NOT NULL DEFAULT 0 AFTER description_type;
  100. ALTER TABLE item_property ADD id int NOT NULL auto_increment PRIMARY KEY FIRST;
  101. CREATE TABLE attendance_calendar (id int NOT NULL auto_increment, attendance_id int NOT NULL, date_time datetime NOT NULL default '0000-00-00 00:00:00', done_attendance tinyint NOT NULL default 0, PRIMARY KEY(id));
  102. ALTER TABLE attendance_calendar ADD INDEX(attendance_id);
  103. ALTER TABLE attendance_calendar ADD INDEX(done_attendance);
  104. CREATE TABLE attendance_sheet (user_id int NOT NULL, attendance_calendar_id int NOT NULL, presence tinyint NOT NULL DEFAULT 0, PRIMARY KEY(user_id, attendance_calendar_id));
  105. ALTER TABLE attendance_sheet ADD INDEX(presence);
  106. CREATE TABLE attendance_result (id int NOT NULL auto_increment PRIMARY KEY, user_id int NOT NULL, attendance_id int NOT NULL, score int NOT NULL DEFAULT 0);
  107. ALTER TABLE attendance_result ADD INDEX(attendance_id);
  108. ALTER TABLE attendance_result ADD INDEX(user_id);
  109. CREATE TABLE attendance (id int NOT NULL auto_increment PRIMARY KEY, name text NOT NULL, description TEXT NULL, active tinyint NOT NULL default 1, attendance_qualify_title varchar(255) NULL, attendance_qualify_max int NOT NULL default 0, attendance_weight float(6,2) NOT NULL default '0.0', session_id int NOT NULL default 0);
  110. ALTER TABLE attendance ADD INDEX(session_id);
  111. ALTER TABLE attendance ADD INDEX(active);
  112. ALTER TABLE lp_view ADD session_id INT NOT NULL DEFAULT 0;
  113. ALTER TABLE lp_view ADD INDEX(session_id);
  114. INSERT INTO course_setting (variable,value,category) VALUES ('allow_user_view_user_list',1,'user');
  115. ALTER TABLE tool_intro ADD COLUMN session_id INT NOT NULL DEFAULT 0 AFTER intro_text, DROP PRIMARY KEY, ADD PRIMARY KEY USING BTREE(id, session_id);
  116. CREATE TABLE thematic (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, title VARCHAR( 255 ) NOT NULL, content TEXT NULL, display_order int unsigned not null default 0, active TINYINT NOT NULL default 0, session_id INT NOT NULL DEFAULT 0);
  117. ALTER TABLE thematic ADD INDEX (active, session_id);
  118. CREATE TABLE thematic_plan (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, thematic_id INT NOT NULL, title VARCHAR(255) NOT NULL, description TEXT NULL, description_type INT NOT NULL);
  119. ALTER TABLE thematic_plan ADD INDEX (thematic_id, description_type);
  120. CREATE TABLE thematic_advance (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, thematic_id INT NOT NULL, attendance_id INT NOT NULL DEFAULT 0, content TEXT NOT NULL, start_date DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00', duration INT NOT NULL DEFAULT 0, done_advance tinyint NOT NULL DEFAULT 0);
  121. ALTER TABLE thematic_advance ADD INDEX (thematic_id);
  122. INSERT INTO course_setting (variable,value,category) VALUES ('display_info_advance_inside_homecourse',1,'thematic_advance');
  123. INSERT INTO tool(name, link, image, visibility, admin, address, added_tool, target, category) VALUES ('course_progress','course_progress/index.php','course_progress.gif',0,'0','squaregrey.gif',0,'_self','authoring');
  124. ALTER TABLE lp ADD prerequisite int unsigned NOT NULL DEFAULT 0;
  125. ALTER TABLE student_publication MODIFY COLUMN description TEXT DEFAULT NULL;
  126. ALTER TABLE student_publication ADD COLUMN user_id INTEGER NOT NULL AFTER session_id;
  127. INSERT INTO course_setting(variable,value,category) VALUES ('email_alert_students_on_new_homework',0,'work');
  128. ALTER TABLE course_setting DROP INDEX unique_setting;