Version20170628122900::up()   F
last analyzed

Complexity

Conditions 20
Paths > 20000

Size

Total Lines 135
Code Lines 79

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 20
eloc 79
nc 393216
nop 1
dl 0
loc 135
rs 0
c 0
b 0
f 0

How to fix   Long Method    Complexity   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
declare(strict_types=1);
4
5
/* For licensing terms, see /license.txt */
6
7
namespace Chamilo\CoreBundle\Migrations\Schema\V200;
8
9
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
10
use Doctrine\DBAL\Schema\Schema;
11
12
class Version20170628122900 extends AbstractMigrationChamilo
13
{
14
    public function getDescription(): string
15
    {
16
        return 'Access url changes';
17
    }
18
19
    public function up(Schema $schema): void
20
    {
21
        // access_url_rel_user.
22
        $table = $schema->getTable('access_url_rel_user');
23
        if (false === $table->hasColumn('id')) {
24
            $this->addSql('ALTER TABLE access_url_rel_user MODIFY COLUMN access_url_id INT NOT NULL');
25
            $this->addSql('ALTER TABLE access_url_rel_user MODIFY COLUMN user_id INT NOT NULL');
26
            if ($table->hasPrimaryKey()) {
27
                $this->addSql('ALTER TABLE access_url_rel_user DROP PRIMARY KEY');
28
            }
29
30
            $this->addSql(
31
                'ALTER TABLE access_url_rel_user ADD id INT AUTO_INCREMENT NOT NULL, ADD PRIMARY KEY (id)'
32
            );
33
34
            $this->addSql('ALTER TABLE access_url_rel_user CHANGE access_url_id access_url_id INT DEFAULT NULL');
35
            $this->addSql('ALTER TABLE access_url_rel_user CHANGE user_id user_id INT DEFAULT NULL');
36
        }
37
38
        if ($table->hasForeignKey('FK_85574263A76ED395')) {
39
            $this->addSql('ALTER TABLE access_url_rel_user DROP FOREIGN KEY FK_85574263A76ED395');
40
            $this->addSql(
41
                'ALTER TABLE access_url_rel_user ADD CONSTRAINT FK_85574263A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE'
42
            );
43
        } else {
44
            $this->addSql(
45
                'ALTER TABLE access_url_rel_user ADD CONSTRAINT FK_85574263A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE'
46
            );
47
        }
48
49
        // access_url_rel_session.
50
        $table = $schema->getTable('access_url_rel_session');
51
        if (false === $table->hasColumn('id')) {
52
            $this->addSql('ALTER TABLE access_url_rel_session DROP PRIMARY KEY');
53
            $this->addSql(
54
                'ALTER TABLE access_url_rel_session ADD id INT AUTO_INCREMENT NOT NULL, CHANGE access_url_id access_url_id INT DEFAULT NULL, CHANGE session_id session_id INT DEFAULT NULL, ADD PRIMARY KEY (id);'
55
            );
56
            $this->addSql(
57
                'ALTER TABLE access_url_rel_session ADD CONSTRAINT FK_6CBA5F5D613FECDF FOREIGN KEY (session_id) REFERENCES session (id);'
58
            );
59
            $this->addSql(
60
                'ALTER TABLE access_url_rel_session ADD CONSTRAINT FK_6CBA5F5D73444FD5 FOREIGN KEY (access_url_id) REFERENCES access_url (id);'
61
            );
62
            $this->addSql('CREATE INDEX IDX_6CBA5F5D613FECDF ON access_url_rel_session (session_id);');
63
            $this->addSql('CREATE INDEX IDX_6CBA5F5D73444FD5 ON access_url_rel_session (access_url_id);');
64
        }
65
66
        // access_url.
67
        $table = $schema->getTable('access_url');
68
        if (false === $table->hasColumn('limit_courses')) {
69
            $this->addSql(
70
                'ALTER TABLE access_url ADD limit_courses INT DEFAULT NULL, ADD limit_active_courses INT DEFAULT NULL, ADD limit_sessions INT DEFAULT NULL, ADD limit_users INT DEFAULT NULL, ADD limit_teachers INT DEFAULT NULL, ADD limit_disk_space INT DEFAULT NULL, ADD email VARCHAR(255) DEFAULT NULL;'
71
            );
72
        }
73
        $this->addSql(
74
            'ALTER TABLE access_url_rel_course_category CHANGE access_url_id access_url_id INT DEFAULT NULL, CHANGE course_category_id course_category_id INT DEFAULT NULL'
75
        );
76
77
        if (false === $table->hasColumn('parent_id')) {
78
            $this->addSql('ALTER TABLE access_url ADD parent_id INT DEFAULT NULL');
79
            $this->addSql(
80
                'ALTER TABLE access_url ADD CONSTRAINT FK_9436187B727ACA70 FOREIGN KEY (parent_id) REFERENCES access_url (id) ON DELETE CASCADE;'
81
            );
82
            $this->addSql('CREATE INDEX IDX_9436187B727ACA70 ON access_url (parent_id);');
83
        }
84
85
        if (false === $table->hasColumn('tree_root')) {
86
            $this->addSql('ALTER TABLE access_url ADD tree_root INT DEFAULT NULL');
87
            $this->addSql(
88
                'ALTER TABLE access_url ADD CONSTRAINT FK_9436187BA977936C FOREIGN KEY (tree_root) REFERENCES access_url (id) ON DELETE CASCADE;'
89
            );
90
            $this->addSql('CREATE INDEX IDX_9436187BA977936C ON access_url (tree_root);');
91
        }
92
93
        if (false === $table->hasColumn('resource_node_id')) {
94
            $this->addSql('ALTER TABLE access_url ADD resource_node_id INT DEFAULT NULL');
95
            $this->addSql(
96
                'ALTER TABLE access_url ADD CONSTRAINT FK_9436187B1BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE;'
97
            );
98
            $this->addSql('CREATE UNIQUE INDEX UNIQ_9436187B1BAD783F ON access_url (resource_node_id);');
99
        }
100
101
        if (false === $table->hasColumn('lft')) {
102
            $this->addSql('ALTER TABLE access_url ADD lft INT NOT NULL');
103
        }
104
105
        if (false === $table->hasColumn('lvl')) {
106
            $this->addSql('ALTER TABLE access_url ADD lvl INT NOT NULL');
107
        }
108
109
        if (false === $table->hasColumn('rgt')) {
110
            $this->addSql('ALTER TABLE access_url ADD rgt INT NOT NULL;');
111
        }
112
113
        // access_url_rel_course_category.
114
        $table = $schema->getTable('access_url_rel_course_category');
115
        if (false === $table->hasForeignKey('FK_3545C2A673444FD5')) {
116
            $this->addSql(
117
                'ALTER TABLE access_url_rel_course_category ADD CONSTRAINT FK_3545C2A673444FD5 FOREIGN KEY (access_url_id) REFERENCES access_url (id)'
118
            );
119
        }
120
        if (false === $table->hasForeignKey('FK_3545C2A66628AD36')) {
121
            $this->addSql(
122
                'ALTER TABLE access_url_rel_course_category ADD CONSTRAINT FK_3545C2A66628AD36 FOREIGN KEY (course_category_id) REFERENCES course_category (id) ON DELETE CASCADE'
123
            );
124
        }
125
        if (false === $table->hasIndex('IDX_3545C2A673444FD5')) {
126
            $this->addSql('CREATE INDEX IDX_3545C2A673444FD5 ON access_url_rel_course_category (access_url_id)');
127
        }
128
        if (false === $table->hasIndex('IDX_3545C2A66628AD36')) {
129
            $this->addSql('CREATE INDEX IDX_3545C2A66628AD36 ON access_url_rel_course_category (course_category_id)');
130
        }
131
132
        $this->addSql('ALTER TABLE access_url_rel_usergroup CHANGE access_url_id access_url_id INT DEFAULT NULL');
133
134
        // access_url_rel_usergroup.
135
        $table = $schema->getTable('access_url_rel_usergroup');
136
        if (!$table->hasForeignKey('FK_AD488DD573444FD5')) {
137
            $this->addSql(
138
                'ALTER TABLE access_url_rel_usergroup ADD CONSTRAINT FK_AD488DD573444FD5 FOREIGN KEY (access_url_id) REFERENCES access_url (id)'
139
            );
140
        }
141
        if (!$table->hasIndex('IDX_AD488DD573444FD5')) {
142
            $this->addSql('CREATE INDEX IDX_AD488DD573444FD5 ON access_url_rel_usergroup (access_url_id)');
143
        }
144
145
        $this->addSql('ALTER TABLE access_url_rel_usergroup CHANGE usergroup_id usergroup_id INT DEFAULT NULL;');
146
147
        if (!$table->hasForeignKey('FK_AD488DD5D2112630')) {
148
            $this->addSql(
149
                'ALTER TABLE access_url_rel_usergroup ADD CONSTRAINT FK_AD488DD5D2112630 FOREIGN KEY (usergroup_id) REFERENCES usergroup (id) ON DELETE CASCADE;'
150
            );
151
        }
152
        if (!$table->hasIndex('IDX_AD488DD5D2112630')) {
153
            $this->addSql('CREATE INDEX IDX_AD488DD5D2112630 ON access_url_rel_usergroup (usergroup_id);');
154
        }
155
    }
156
157
    public function down(Schema $schema): void {}
158
}
159