Newer
Older
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
77
78
79
<?php
/**
* This migration will set the columns of the oer campus to the correct state
* regarding the collations of some columns. This should only be necessary if
* the plugin "Lernmarktplatz" was installed before the migration of Stud.IP
* that introduced the oer campus. In any other case the tables should not be
* changed since they are already in the correct format.
*
* @see https://gitlab.studip.de/studip/studip/-/issues/3964
*
* @author Jan-Hendrik Willms <tleilax+studip@gmail.com>
*/
final class FixCollationOnOerCampusTables extends Migration
{
public function description()
{
return 'Correct collations for oer campus tables';
}
protected function up()
{
$query = "ALTER TABLE `oer_abo`
MODIFY COLUMN `user_id` CHAR(32) COLLATE `latin1_bin` NOT NULL DEFAULT '',
MODIFY COLUMN `material_id` CHAR(32) COLLATE `latin1_bin` DEFAULT NULL";
DBManager::get()->exec($query);
$query = "ALTER TABLE `oer_comments`
MODIFY COLUMN `comment_id` CHAR(32) COLLATE `latin1_bin` NOT NULL,
MODIFY COLUMN `review_id` CHAR(32) COLLATE `latin1_bin` NOT NULL,
MODIFY COLUMN `foreign_comment_id` CHAR(32) COLLATE `latin1_bin` DEFAULT NULL,
MODIFY COLUMN `host_id` CHAR(32) COLLATE `latin1_bin` DEFAULT NULL,
MODIFY COLUMN `user_id` CHAR(32) COLLATE `latin1_bin` NOT NULL";
DBManager::get()->exec($query);
$query = "ALTER TABLE `oer_downloadcounter`
MODIFY COLUMN `counter_id` CHAR(32) COLLATE `latin1_bin` NOT NULL DEFAULT '',
MODIFY COLUMN `material_id` CHAR(32) COLLATE `latin1_bin` NOT NULL";
DBManager::get()->exec($query);
$query = "ALTER TABLE `oer_hosts`
MODIFY COLUMN `host_id` CHAR(32) COLLATE `latin1_bin` NOT NULL";
DBManager::get()->exec($query);
$query = "ALTER TABLE `oer_material`
MODIFY COLUMN `material_id` CHAR(32) COLLATE `latin1_bin` NOT NULL,
MODIFY COLUMN `foreign_material_id` CHAR(32) COLLATE `latin1_bin` DEFAULT NULL,
MODIFY COLUMN `host_id` CHAR(32) COLLATE `latin1_bin` DEFAULT NULL";
DBManager::get()->exec($query);
$query = "ALTER TABLE `oer_material_users`
MODIFY COLUMN `material_id` CHAR(32) COLLATE `latin1_bin` NOT NULL DEFAULT '',
MODIFY COLUMN `user_id` CHAR(32) COLLATE `latin1_bin` NOT NULL DEFAULT ''";
DBManager::get()->exec($query);
$query = "ALTER TABLE `oer_reviews`
MODIFY COLUMN `review_id` CHAR(32) COLLATE `latin1_bin` NOT NULL,
MODIFY COLUMN `material_id` CHAR(32) COLLATE `latin1_bin` NOT NULL,
MODIFY COLUMN `foreign_review_id` CHAR(32) COLLATE `latin1_bin` DEFAULT NULL,
MODIFY COLUMN `user_id` CHAR(32) COLLATE `latin1_bin` NOT NULL,
MODIFY COLUMN `host_id` CHAR(32) COLLATE `latin1_bin` DEFAULT NULL";
DBManager::get()->exec($query);
$query = "ALTER TABLE `oer_tags`
MODIFY COLUMN `tag_hash` CHAR(32) COLLATE `latin1_bin` NOT NULL";
DBManager::get()->exec($query);
$query = "ALTER TABLE `oer_tags_material`
MODIFY COLUMN `material_id` CHAR(32) COLLATE `latin1_bin` NOT NULL,
MODIFY COLUMN `tag_hash` CHAR(32) COLLATE `latin1_bin` NOT NULL";
DBManager::get()->exec($query);
$query = "ALTER TABLE `oer_user`
MODIFY COLUMN `user_id` CHAR(32) COLLATE `latin1_bin` NOT NULL,
MODIFY COLUMN `foreign_user_id` CHAR(32) COLLATE `latin1_bin` NOT NULL,
MODIFY COLUMN `host_id` CHAR(32) COLLATE `latin1_bin` NOT NULL";
DBManager::get()->exec($query);
}
}