Passed
Push — master ( 0c3c7b...7eea2b )
by Julito
07:39
created

Version20190110182615::up()   F

Complexity

Conditions 23
Paths > 20000

Size

Total Lines 122
Code Lines 70

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 23
eloc 70
c 0
b 0
f 0
nc 4194304
nop 1
dl 0
loc 122
rs 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
/* 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
 * LPs.
12
 */
13
class Version20190110182615 extends AbstractMigrationChamilo
14
{
15
    public function up(Schema $schema): void
16
    {
17
        $this->addSql('ALTER TABLE c_lp CHANGE author author LONGTEXT NOT NULL');
18
19
        $table = $schema->getTable('c_lp');
20
        if (false === $table->hasColumn('resource_node_id')) {
21
            $this->addSql('ALTER TABLE c_lp ADD resource_node_id INT DEFAULT NULL;');
22
            $this->addSql(
23
                'ALTER TABLE c_lp ADD CONSTRAINT FK_F67ABBEB1BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE;'
24
            );
25
            $this->addSql('CREATE UNIQUE INDEX UNIQ_F67ABBEB1BAD783F ON c_lp (resource_node_id);');
26
        }
27
28
        if (false === $table->hasColumn('accumulate_work_time')) {
29
            $this->addSql('ALTER TABLE c_lp ADD accumulate_work_time INT DEFAULT 0 NOT NULL');
30
        }
31
32
        $this->addSql('ALTER TABLE c_lp CHANGE category_id category_id INT DEFAULT NULL');
33
34
        if (false === $table->hasColumn('id')) {
35
            $this->addSql('ALTER TABLE c_lp DROP id');
36
        }
37
38
        if (false === $table->hasIndex('course')) {
39
            $this->addSql('DROP INDEX course ON c_lp');
40
        }
41
        if (false === $table->hasIndex('session')) {
42
            $this->addSql('DROP INDEX session ON c_lp');
43
        }
44
45
        $table = $schema->getTable('c_lp_category');
46
        if (false === $table->hasForeignKey('FK_F67ABBEB12469DE2')) {
47
            $this->addSql(
48
                'ALTER TABLE c_lp ADD CONSTRAINT FK_F67ABBEB12469DE2 FOREIGN KEY (category_id) REFERENCES c_lp_category (iid)'
49
            );
50
        }
51
52
        if (false === $table->hasColumn('session_id')) {
53
            $this->addSql('ALTER TABLE c_lp_category ADD session_id INT DEFAULT NULL');
54
        }
55
56
        if (false === $table->hasColumn('resource_node_id')) {
57
            $this->addSql('ALTER TABLE c_lp_category ADD resource_node_id INT DEFAULT NULL');
58
        }
59
60
        if ($table->hasIndex('course')) {
61
            $this->addSql('DROP INDEX course ON c_lp_category');
62
        }
63
64
        if (false === $table->hasForeignKey('FK_90A0FC07613FECDF')) {
65
            $this->addSql(
66
                'ALTER TABLE c_lp_category ADD CONSTRAINT FK_90A0FC07613FECDF FOREIGN KEY (session_id) REFERENCES session (id)'
67
            );
68
        }
69
        if (false === $table->hasForeignKey('FK_90A0FC071BAD783F')) {
70
            $this->addSql(
71
                'ALTER TABLE c_lp_category ADD CONSTRAINT FK_90A0FC071BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE'
72
            );
73
        }
74
75
        if (false === $table->hasIndex('IDX_90A0FC07613FECDF')) {
76
            $this->addSql('CREATE INDEX IDX_90A0FC07613FECDF ON c_lp_category (session_id)');
77
        }
78
        if (false === $table->hasIndex('UNIQ_90A0FC071BAD783F')) {
79
            $this->addSql('CREATE UNIQUE INDEX UNIQ_90A0FC071BAD783F ON c_lp_category (resource_node_id)');
80
        }
81
82
        if (false === $schema->getTable('c_lp')->hasIndex('IDX_F67ABBEB12469DE2')) {
83
            $this->addSql('CREATE INDEX IDX_F67ABBEB12469DE2 ON c_lp (category_id)');
84
        }
85
86
        $table = $schema->getTable('c_lp_item');
87
        if ($table->hasColumn('id')) {
88
            $this->addSql('ALTER TABLE c_lp_item DROP id');
89
        }
90
        $this->addSql('ALTER TABLE CHANGE lp_id lp_id INT DEFAULT NULL');
91
92
        if (false === $table->hasForeignKey('FK_CCC9C1ED68DFD1EF')) {
93
            $this->addSql(
94
                'ALTER TABLE c_lp_item ADD CONSTRAINT FK_CCC9C1ED68DFD1EF FOREIGN KEY (lp_id) REFERENCES c_lp (iid)'
95
            );
96
        }
97
98
        $table = $schema->getTable('c_lp_view');
99
        if ($table->hasColumn('id')) {
100
            $this->addSql('ALTER TABLE c_lp_view DROP id');
101
        }
102
103
        $table = $schema->getTable('c_lp_item_view');
104
        if ($table->hasColumn('id')) {
105
            $this->addSql('ALTER TABLE c_lp_item_view DROP id');
106
        }
107
108
        if (false === $table->hasIndex('idx_c_lp_item_view_cid_id_view_count')) {
109
            $this->addSql('CREATE INDEX idx_c_lp_item_view_cid_id_view_count ON c_lp_item_view (c_id, iid, view_count)');
110
        }
111
112
        $table = $schema->getTable('c_lp_iv_interaction');
113
        if ($table->hasColumn('id')) {
114
            $this->addSql('ALTER TABLE c_lp_iv_interaction DROP id');
115
        }
116
117
        $table = $schema->getTable('c_lp_iv_objective');
118
        if ($table->hasColumn('id')) {
119
            $this->addSql('ALTER TABLE c_lp_iv_objective DROP id');
120
        }
121
122
        if (false === $schema->hasTable('c_lp_rel_usergroup')) {
123
            $this->addSql(
124
                'CREATE TABLE c_lp_rel_usergroup (id INT AUTO_INCREMENT NOT NULL, lp_id INT DEFAULT NULL, session_id INT DEFAULT NULL, c_id INT NOT NULL, usergroup_id INT DEFAULT NULL, created_at DATETIME NOT NULL, INDEX IDX_DB8689FF68DFD1EF (lp_id), INDEX IDX_DB8689FF613FECDF (session_id), INDEX IDX_DB8689FF91D79BD3 (c_id), INDEX IDX_DB8689FFD2112630 (usergroup_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB ROW_FORMAT = DYNAMIC;'
125
            );
126
            $this->addSql(
127
                'ALTER TABLE c_lp_rel_usergroup ADD CONSTRAINT FK_DB8689FF68DFD1EF FOREIGN KEY (lp_id) REFERENCES c_lp (iid);'
128
            );
129
            $this->addSql(
130
                'ALTER TABLE c_lp_rel_usergroup ADD CONSTRAINT FK_DB8689FF613FECDF FOREIGN KEY (session_id) REFERENCES session (id);'
131
            );
132
            $this->addSql(
133
                'ALTER TABLE c_lp_rel_usergroup ADD CONSTRAINT FK_DB8689FF91D79BD3 FOREIGN KEY (c_id) REFERENCES course (id);'
134
            );
135
            $this->addSql(
136
                'ALTER TABLE c_lp_rel_usergroup ADD CONSTRAINT FK_DB8689FFD2112630 FOREIGN KEY (usergroup_id) REFERENCES usergroup (id);'
137
            );
138
        }
139
    }
140
141
    public function down(Schema $schema): void
142
    {
143
    }
144
}
145