1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
<?php
class DbUpdatesFor42 extends Migration
{
public function description()
{
return 'various small db schema fixes for Stud.IP 4.2';
}
public function up()
{
$db = DBManager::get();
$db->exec('ALTER TABLE sem_classes DROP compact_mode, DROP workgroup_mode, DROP turnus_default');
$db->exec('ALTER TABLE personal_notifications_user CHANGE user_id user_id char(32) COLLATE latin1_bin NOT NULL');
$db->exec("ALTER TABLE plugins_activated
ADD range_type enum('sem','inst','user') COLLATE latin1_bin NOT NULL default 'sem' AFTER pluginid,
ADD range_id char(32) COLLATE latin1_bin NOT NULL AFTER range_type,
CHANGE state state tinyint(1) NOT NULL DEFAULT 1");
$db->exec("UPDATE plugins_activated SET range_type = 'sem', range_id = SUBSTRING(poiid, 4) WHERE poiid LIKE 'sem%'");
$db->exec("UPDATE plugins_activated SET range_type = 'inst', range_id = SUBSTRING(poiid, 5) WHERE poiid LIKE 'inst%'");
$db->exec("UPDATE plugins_activated SET range_type = 'user', range_id = SUBSTRING(poiid, 5) WHERE poiid LIKE 'user%'");
$db->exec('UPDATE plugins_activated SET state = 0 WHERE state = 2');
// delete invalid entries
$db->exec("DELETE FROM plugins_activated WHERE range_id = ''");
$db->exec('ALTER TABLE plugins_activated
DROP PRIMARY KEY, DROP KEY poiid,
ADD PRIMARY KEY (pluginid, range_type, range_id),
DROP poiid');
//alter default for studygroups, see #9002
$db->exec("UPDATE `sem_classes` SET `course_creation_forbidden` = 0 WHERE `studygroup_mode` = 1");
$db->exec("DELETE FROM `config` WHERE `field` IN (
'ALLOW_METADATE_SORTING',
'ALLOW_DOWNLOAD_FOR_UNKNOWN_LICENSE',
'ADMISSION_ALLOW_DISABLE_WAITLIST',
'ASSI_SEMESTER_PRESELECT',
'ENABLE_PROTECTED_DOWNLOAD_RESTRICTION'
)");
$db->exec("DELETE FROM `config_values` WHERE `field` IN (
'ALLOW_METADATE_SORTING',
'ALLOW_DOWNLOAD_FOR_UNKNOWN_LICENSE',
'ADMISSION_ALLOW_DISABLE_WAITLIST',
'ASSI_SEMESTER_PRESELECT',
'ENABLE_PROTECTED_DOWNLOAD_RESTRICTION'
)");
$db->exec("ALTER TABLE `session_data` CHANGE COLUMN `val` `val` mediumblob NOT NULL"); //see #9106
}
public function down()
{
$db = DBManager::get();
$db->exec('ALTER TABLE sem_classes
ADD compact_mode tinyint(4) NOT NULL AFTER name,
ADD workgroup_mode tinyint(4) NOT NULL AFTER compact_mode,
ADD turnus_default int(11) NOT NULL AFTER only_inst_user');
$db->exec("ALTER TABLE plugins_activated ADD poiid varchar(36) COLLATE latin1_bin NOT NULL DEFAULT '' AFTER pluginid");
$db->exec('UPDATE plugins_activated SET poiid = CONCAT(range_type, range_id)');
$db->exec('UPDATE plugins_activated SET state = 2 WHERE state = 0');
$db->exec("ALTER TABLE plugins_activated
CHANGE state state enum('on','off') COLLATE latin1_bin NOT NULL DEFAULT 'on',
DROP PRIMARY KEY,
ADD PRIMARY KEY (pluginid, poiid),
ADD UNIQUE KEY poiid (poiid, pluginid, state),
DROP range_type, DROP range_id");
}
}
|