Passed
Push — master ( 526730...ce0e49 )
by Julito
15:06 queued 06:42
created

Version20170625122900::getDescription()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
1
<?php
2
3
/* For licensing terms, see /license.txt */
4
5
namespace Chamilo\CoreBundle\Migrations\Schema\V200;
6
7
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
8
use Doctrine\DBAL\Schema\Schema;
9
10
/**
11
 * c_document.
12
 */
13
class Version20170625122900 extends AbstractMigrationChamilo
14
{
15
    public function up(Schema $schema): void
16
    {
17
        $table = $schema->getTable('c_document');
18
        if (false === $table->hasColumn('resource_node_id')) {
19
            $this->addSql('ALTER TABLE c_document ADD resource_node_id INT DEFAULT NULL');
20
            $this->addSql(
21
                'ALTER TABLE c_document ADD CONSTRAINT FK_C9FA0CBD1BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id);'
22
            );
23
            $this->addSql('CREATE UNIQUE INDEX UNIQ_C9FA0CBD1BAD783F ON c_document (resource_node_id);');
24
        }
25
26
        if ($table->hasForeignKey('FK_C9FA0CBD1BAD783F')) {
27
            $this->addSql('ALTER TABLE c_document DROP FOREIGN KEY FK_C9FA0CBD1BAD783F');
28
        }
29
30
        if (false === $table->hasColumn('template')) {
31
            $this->addSql('ALTER TABLE c_document ADD template TINYINT(1) NOT NULL');
32
        }
33
34
        if ($table->hasColumn('id')) {
35
            $this->addSql('ALTER TABLE c_document DROP id');
36
            //$this->addSql('ALTER TABLE c_document DROP id, DROP c_id, DROP path, DROP size, DROP session_id');
37
        }
38
39
        if ($table->hasForeignKey('FK_C9FA0CBD1BAD783F')) {
40
            $this->addSql(
41
                'ALTER TABLE c_document ADD CONSTRAINT FK_C9FA0CBD1BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE'
42
            );
43
        }
44
45
        if (false === $table->hasIndex('idx_cdoc_type')) {
46
            $this->addSql('CREATE INDEX idx_cdoc_type ON c_document (filetype)');
47
        }
48
49
        //$this->addSql('ALTER TABLE c_document CHANGE path path VARCHAR(255) DEFAULT NULL;');
50
        $table = $schema->getTable('c_announcement');
51
        if (false === $table->hasColumn('resource_node_id')) {
52
            $this->addSql('ALTER TABLE c_announcement ADD resource_node_id INT DEFAULT NULL;');
53
            $this->addSql(
54
                'ALTER TABLE c_announcement ADD CONSTRAINT FK_39912E021BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE;'
55
            );
56
            $this->addSql('CREATE UNIQUE INDEX UNIQ_39912E021BAD783F ON c_announcement (resource_node_id);');
57
        }
58
        if ($table->hasIndex('course')) {
59
            $this->addSql('DROP INDEX course ON c_announcement');
60
        }
61
        if ($table->hasIndex('session_id')) {
62
            $this->addSql('DROP INDEX session_id ON c_announcement');
63
        }
64
65
        $table = $schema->getTable('c_announcement_attachment');
66
        if ($table->hasIndex('course')) {
67
            $this->addSql('DROP INDEX course ON c_announcement_attachment');
68
        }
69
70
        $this->addSql('ALTER TABLE c_announcement_attachment CHANGE announcement_id announcement_id INT DEFAULT NULL');
71
72
        if (false === $table->hasColumn('resource_node_id')) {
73
            $this->addSql('ALTER TABLE c_announcement_attachment ADD resource_node_id INT DEFAULT NULL');
74
            $this->addSql(
75
                'ALTER TABLE c_announcement_attachment ADD CONSTRAINT FK_5480BD4A913AEA17 FOREIGN KEY (announcement_id) REFERENCES c_announcement (iid) ON DELETE CASCADE'
76
            );
77
            $this->addSql(
78
                'ALTER TABLE c_announcement_attachment ADD CONSTRAINT FK_5480BD4A1BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE'
79
            );
80
            $this->addSql('CREATE INDEX IDX_5480BD4A913AEA17 ON c_announcement_attachment (announcement_id)');
81
            $this->addSql('CREATE UNIQUE INDEX UNIQ_5480BD4A1BAD783F ON c_announcement_attachment (resource_node_id)');
82
        }
83
84
        // CAttendance
85
        $table = $schema->getTable('c_attendance');
86
        if ($table->hasIndex('course')) {
87
            $this->addSql('DROP INDEX course ON c_attendance');
88
        }
89
        if ($table->hasIndex('session_id')) {
90
            $this->addSql('DROP INDEX session_id ON c_attendance');
91
        }
92
93
        $this->addSql('ALTER TABLE c_attendance CHANGE active active INT NOT NULL');
94
95
        if (false === $table->hasColumn('resource_node_id')) {
96
            $this->addSql('ALTER TABLE c_attendance ADD resource_node_id INT DEFAULT NULL');
97
            $this->addSql('ALTER TABLE c_attendance ADD CONSTRAINT FK_413634921BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE');
98
            $this->addSql('CREATE UNIQUE INDEX UNIQ_413634921BAD783F ON c_attendance (resource_node_id)');
99
        }
100
101
        $table = $schema->getTable('c_attendance_calendar');
102
        if ($table->hasIndex('course')) {
103
            $this->addSql('DROP INDEX course ON c_attendance_calendar');
104
        }
105
    }
106
107
    public function down(Schema $schema): void
108
    {
109
    }
110
}
111