Passed
Push — master ( ab20b0...4728a8 )
by Julito
09:22
created

Version20190110182615::up()   F

Complexity

Conditions 23
Paths > 20000

Size

Total Lines 123
Code Lines 71

Duplication

Lines 0
Ratio 0 %

Importance

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