Skip to content

Commit 7edfdbf

Browse files
committed
convert all the db tables into the utf8mb4 charset
1 parent 96f4673 commit 7edfdbf

5 files changed

+146
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
-- +migrate Up
2+
ALTER TABLE `attempts` CONVERT TO CHARACTER SET utf8mb4;
3+
ALTER TABLE `badges`
4+
MODIFY `name` text,
5+
MODIFY `code` text NOT NULL,
6+
DEFAULT CHARACTER SET utf8mb4;
7+
ALTER TABLE `error_log`
8+
MODIFY `url` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci NOT NULL,
9+
MODIFY `browser` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci NOT NULL,
10+
MODIFY `details` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci NOT NULL,
11+
DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_ci;
12+
ALTER TABLE `filters` CONVERT TO CHARACTER SET utf8mb4;
13+
ALTER TABLE `gorp_migrations` CONVERT TO CHARACTER SET utf8mb4;
14+
ALTER TABLE `gradings` CONVERT TO CHARACTER SET utf8mb4;
15+
ALTER TABLE `group_managers` CONVERT TO CHARACTER SET utf8mb4;
16+
ALTER TABLE `group_membership_changes` CONVERT TO CHARACTER SET utf8mb4;
17+
ALTER TABLE `group_pending_requests` CONVERT TO CHARACTER SET utf8mb4;
18+
ALTER TABLE `groups` CONVERT TO CHARACTER SET utf8mb4;
19+
ALTER TABLE `groups`
20+
MODIFY `description` text
21+
COMMENT 'Purpose of this group. Will be visible by its members. or by the public if the group is public.';
22+
ALTER TABLE `groups_ancestors` CONVERT TO CHARACTER SET utf8mb4;
23+
ALTER TABLE `groups_groups` CONVERT TO CHARACTER SET utf8mb4;
24+
ALTER TABLE `groups_propagate` CONVERT TO CHARACTER SET utf8mb4;
25+
26+
ALTER TABLE `permissions_generated` CONVERT TO CHARACTER SET utf8mb4;
27+
ALTER TABLE `permissions_granted` CONVERT TO CHARACTER SET utf8mb4;
28+
ALTER TABLE `permissions_propagate` CONVERT TO CHARACTER SET utf8mb4;
29+
ALTER TABLE `permissions_propagate_sync` CONVERT TO CHARACTER SET utf8mb4;
30+
ALTER TABLE `platforms` CONVERT TO CHARACTER SET utf8mb4;
31+
ALTER TABLE `platforms`
32+
MODIFY `regexp` text
33+
COMMENT 'Regexp matching the urls, to automatically detect content from this platform. It is the only way to specify which items are from which platform. Recomputation of items.platform_id is triggered when changed.';
34+
ALTER TABLE `results` CONVERT TO CHARACTER SET utf8mb4;
35+
ALTER TABLE `results`
36+
MODIFY `hints_requested` mediumtext COMMENT 'JSON array of the hints that have been requested for this attempt';
37+
ALTER TABLE `results_propagate` CONVERT TO CHARACTER SET utf8mb4;
38+
ALTER TABLE `results_propagate_sync` CONVERT TO CHARACTER SET utf8mb4;
39+
ALTER TABLE `results_recompute_for_items` CONVERT TO CHARACTER SET utf8mb4;
40+
41+
ALTER TABLE `users`
42+
MODIFY `login` varchar(100) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT 'login provided by the auth platform',
43+
MODIFY `student_id` text COMMENT 'A student id provided by the school, provided by auth platform',
44+
MODIFY `address` mediumtext COMMENT 'Address, provided by auth platform',
45+
MODIFY `zipcode` longtext COMMENT 'Zip code, provided by auth platform',
46+
MODIFY `city` longtext COMMENT 'City, provided by auth platform',
47+
MODIFY `land_line_number` longtext COMMENT 'Phone number, provided by auth platform',
48+
MODIFY `cell_phone_number` longtext COMMENT 'Mobile phone number, provided by auth platform',
49+
MODIFY `free_text` mediumtext COMMENT 'Text provided by the user, to be displayed on his public profile',
50+
CHARACTER SET utf8mb4;
51+
52+
-- +migrate Down
53+
ALTER TABLE `users` CONVERT TO CHARACTER SET utf8mb3;
54+
ALTER TABLE `users`
55+
MODIFY `login` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '' COMMENT 'login provided by the auth platform';
56+
57+
ALTER TABLE `results_recompute_for_items` CONVERT TO CHARACTER SET utf8mb3;
58+
ALTER TABLE `results_propagate_sync` CONVERT TO CHARACTER SET utf8mb3;
59+
ALTER TABLE `results_propagate` CONVERT TO CHARACTER SET utf8mb3;
60+
ALTER TABLE `results` CONVERT TO CHARACTER SET utf8mb3;
61+
ALTER TABLE `platforms` CONVERT TO CHARACTER SET utf8mb3;
62+
ALTER TABLE `permissions_propagate_sync` CONVERT TO CHARACTER SET utf8mb3;
63+
ALTER TABLE `permissions_propagate` CONVERT TO CHARACTER SET utf8mb3;
64+
ALTER TABLE `permissions_granted` CONVERT TO CHARACTER SET utf8mb3;
65+
ALTER TABLE `permissions_generated` CONVERT TO CHARACTER SET utf8mb3;
66+
67+
ALTER TABLE `groups_propagate` CONVERT TO CHARACTER SET utf8mb3;
68+
ALTER TABLE `groups_groups` CONVERT TO CHARACTER SET utf8mb3;
69+
ALTER TABLE `groups_ancestors` CONVERT TO CHARACTER SET utf8mb3;
70+
ALTER TABLE `groups` CONVERT TO CHARACTER SET utf8mb3;
71+
ALTER TABLE `group_pending_requests` CONVERT TO CHARACTER SET utf8mb3;
72+
ALTER TABLE `group_membership_changes` CONVERT TO CHARACTER SET utf8mb3;
73+
ALTER TABLE `group_managers` CONVERT TO CHARACTER SET utf8mb3;
74+
ALTER TABLE `gradings` CONVERT TO CHARACTER SET utf8mb3;
75+
ALTER TABLE `gorp_migrations` CONVERT TO CHARACTER SET utf8mb3;
76+
ALTER TABLE `filters` CONVERT TO CHARACTER SET utf8mb3;
77+
ALTER TABLE `error_log` CONVERT TO CHARACTER SET utf8mb3 COLLATE utf8_unicode_ci;
78+
ALTER TABLE `badges` CONVERT TO CHARACTER SET utf8mb3;
79+
ALTER TABLE `attempts` CONVERT TO CHARACTER SET utf8mb3;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
-- +migrate Up
2+
ALTER TABLE `answers`
3+
MODIFY `type` ENUM('Submission','Saved','Current') NOT NULL
4+
COMMENT '''Submission'' for answers submitted for grading, ''Saved'' for manual backups of answers, ''Current'' for automatic snapshots of the latest answers (unique for a user on an attempt)',
5+
MODIFY `state` mediumtext COMMENT 'Saved state (sent by the task platform)',
6+
MODIFY `answer` mediumtext COMMENT 'Saved answer (sent by the task platform)',
7+
DEFAULT CHARACTER SET utf8mb4;
8+
9+
-- +migrate Down
10+
ALTER TABLE `answers` CONVERT TO CHARACTER SET utf8mb3;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
-- +migrate Up
2+
SET foreign_key_checks = 0;
3+
ALTER TABLE `items` CONVERT TO CHARACTER SET utf8mb4;
4+
ALTER TABLE `items`
5+
MODIFY `options` text COMMENT 'Options passed to the task, formatted as a JSON object',
6+
MODIFY `repository_path` text;
7+
ALTER TABLE `items_ancestors` CONVERT TO CHARACTER SET utf8mb4;
8+
ALTER TABLE `items_items` CONVERT TO CHARACTER SET utf8mb4;
9+
ALTER TABLE `items_propagate` CONVERT TO CHARACTER SET utf8mb4;
10+
ALTER TABLE `items_strings` CONVERT TO CHARACTER SET utf8mb4;
11+
ALTER TABLE `items_strings`
12+
MODIFY `description` text COMMENT 'Description of the item in the specified language',
13+
MODIFY `edu_comment` text COMMENT 'Information about what this item teaches, in the specified language.';
14+
ALTER TABLE `languages` CONVERT TO CHARACTER SET utf8mb4;
15+
SET foreign_key_checks = 1;
16+
17+
-- +migrate Down
18+
SET foreign_key_checks = 0;
19+
ALTER TABLE `languages` CONVERT TO CHARACTER SET utf8mb3;
20+
ALTER TABLE `items_strings` CONVERT TO CHARACTER SET utf8mb3;
21+
ALTER TABLE `items_propagate` CONVERT TO CHARACTER SET utf8mb3;
22+
ALTER TABLE `items_items` CONVERT TO CHARACTER SET utf8mb3;
23+
ALTER TABLE `items_ancestors` CONVERT TO CHARACTER SET utf8mb3;
24+
ALTER TABLE `items` CONVERT TO CHARACTER SET utf8mb3;
25+
SET foreign_key_checks = 1;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
-- +migrate Up
2+
SET foreign_key_checks = 0;
3+
ALTER TABLE `user_batch_prefixes`
4+
CHARACTER SET utf8mb4,
5+
MODIFY `group_prefix` varchar(13) NOT NULL COLLATE utf8mb4_bin
6+
COMMENT 'Prefix used in front of all batches';
7+
ALTER TABLE `user_batches_v2`
8+
CHARACTER SET utf8mb4,
9+
MODIFY `group_prefix` varchar(13) NOT NULL COLLATE utf8mb4_bin
10+
COMMENT 'Authorized (first) part of the full login prefix',
11+
MODIFY `custom_prefix` varchar(14) NOT NULL COLLATE utf8mb4_bin
12+
COMMENT 'Second part of the full login prefix, given by the user that created the batch';
13+
SET foreign_key_checks = 1;
14+
15+
-- +migrate Down
16+
SET foreign_key_checks = 0;
17+
ALTER TABLE `user_batch_prefixes`
18+
CHARACTER SET utf8mb3,
19+
MODIFY `group_prefix` varchar(13) NOT NULL
20+
COMMENT 'Prefix used in front of all batches';
21+
ALTER TABLE `user_batches_v2`
22+
CHARACTER SET utf8mb3,
23+
MODIFY `group_prefix` varchar(13) NOT NULL
24+
COMMENT 'Authorized (first) part of the full login prefix',
25+
MODIFY `custom_prefix` varchar(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL
26+
COMMENT 'Second part of the full login prefix, given by the user that created the batch';
27+
SET foreign_key_checks = 1;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-- +migrate Up
2+
ALTER DATABASE CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
3+
4+
-- +migrate Down
5+
ALTER DATABASE CHARACTER SET utf8mb3 COLLATE utf8_general_ci;

0 commit comments

Comments
 (0)