aboutsummaryrefslogtreecommitdiff
path: root/db/migrations/6.0.13_alter_schedule_table.php
blob: 3ab1b4926c582749464de78ce7e297012c89fd70 (plain)
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
<?php


class AlterScheduleTable extends Migration
{
    public function description()
    {
        return 'Renames and alters the schedule table';
    }

    protected function up()
    {
        $db = DBManager::get();

        $db->exec("RENAME TABLE `schedule` TO `schedule_entries`");

        $db->exec(
            "ALTER TABLE `schedule_entries`
            CHANGE COLUMN color colour_id TINYINT(3) NOT NULL DEFAULT 0,
            CHANGE COLUMN start start_time SMALLINT(6) NOT NULL,
            CHANGE COLUMN end end_time SMALLINT(6) NOT NULL,
            CHANGE COLUMN day dow TINYINT(1) NOT NULL,
            CHANGE COLUMN title label VARCHAR(255) NOT NULL DEFAULT '',
            CHANGE COLUMN content content TEXT,
            ADD COLUMN mkdate BIGINT(10) NOT NULL DEFAULT 0,
            ADD COLUMN chdate BIGINT(10) NOT NULL DEFAULT 0"
        );

        $db->exec("RENAME TABLE `schedule_seminare` TO `schedule_courses`");
        $db->exec(
            "ALTER TABLE `schedule_courses`
            DROP COLUMN color,
            CHANGE COLUMN seminar_id course_id CHAR(32) COLLATE latin1_bin NOT NULL,
            ADD COLUMN mkdate BIGINT(10) NOT NULL DEFAULT 0,
            ADD COLUMN chdate BIGINT(10) NOT NULL DEFAULT 0"
        );
    }

    protected function down()
    {
        $db = DBManager::get();

        $db->exec(
            "ALTER TABLE `schedule_courses`
            ADD COLUMN color TINYINT(4) NULL DEFAULT NULL,
            CHANGE COLUMN course_id seminar_id CHAR(32) COLLATE latin1_bin NOT NULL,
            DROP COLUMN mkdate,
            DROP COLUMN chdate"
        );
        $db->exec("RENAME TABLE `schedule_courses` TO `schedule_seminare`");

        $db->exec(
            "ALTER TABLE `schedule_entries`
            CHANGE COLUMN colour_id color TINYINT(3) NOT NULL DEFAULT 0,
            CHANGE COLUMN start_time start SMALLINT(6) NOT NULL,
            CHANGE COLUMN end_time end SMALLINT(6) NOT NULL,
            CHANGE COLUMN dow day TINYINT(1) NOT NULL,
            CHANGE COLUMN label title VARCHAR(255) NOT NULL,
            CHANGE COLUMN content content VARCHAR(255) NOT NULL,
            DROP COLUMN mkdate,
            DROP COLUMN chdate"
        );
        $db->exec("RENAME TABLE `schedule_entries` TO `schedule`");
    }
}