Passed
Push — master ( 6c23c3...c1688f )
by Julito
09:45
created

Version20170625122900::up()   F

Complexity

Conditions 11
Paths 1024

Size

Total Lines 67
Code Lines 40

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 11
eloc 40
nc 1024
nop 1
dl 0
loc 67
rs 3.15
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 Chamilo\CoreBundle\ToolChain;
11
use Doctrine\DBAL\Schema\Schema;
12
13
class Version20170625122900 extends AbstractMigrationChamilo
14
{
15
    public function getDescription(): string
16
    {
17
        return 'c_document changes';
18
    }
19
20
    public function up(Schema $schema): void
21
    {
22
        // Install tools.
23
        $em = $this->getEntityManager();
24
        $container = $this->getContainer();
25
        $toolChain = $container->get(ToolChain::class);
26
        $toolChain->createTools($em);
27
28
        $table = $schema->getTable('c_document');
29
        if (false === $table->hasColumn('resource_node_id')) {
30
            $this->addSql('ALTER TABLE c_document ADD resource_node_id INT DEFAULT NULL');
31
            $this->addSql(
32
                'ALTER TABLE c_document ADD CONSTRAINT FK_C9FA0CBD1BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE;'
33
            );
34
            $this->addSql('CREATE UNIQUE INDEX UNIQ_C9FA0CBD1BAD783F ON c_document (resource_node_id);');
35
        }
36
37
        if (false === $table->hasColumn('template')) {
38
            $this->addSql('ALTER TABLE c_document ADD template TINYINT(1) NOT NULL');
39
        }
40
41
        if ($table->hasColumn('id')) {
42
            $this->addSql('ALTER TABLE c_document DROP id');
43
            //$this->addSql('ALTER TABLE c_document DROP id, DROP c_id, DROP path, DROP size, DROP session_id');
44
        }
45
46
        if (false === $table->hasIndex('idx_cdoc_type')) {
47
            $this->addSql('CREATE INDEX idx_cdoc_type ON c_document (filetype)');
48
        }
49
50
        if ($table->hasIndex('course')) {
51
            $this->addSql('DROP INDEX course ON c_document');
52
        }
53
54
        //$this->addSql('ALTER TABLE c_document CHANGE path path VARCHAR(255) DEFAULT NULL;');
55
        $table = $schema->getTable('c_announcement');
56
        if (false === $table->hasColumn('resource_node_id')) {
57
            $this->addSql('ALTER TABLE c_announcement ADD resource_node_id INT DEFAULT NULL;');
58
            $this->addSql(
59
                'ALTER TABLE c_announcement ADD CONSTRAINT FK_39912E021BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE;'
60
            );
61
            $this->addSql('CREATE UNIQUE INDEX UNIQ_39912E021BAD783F ON c_announcement (resource_node_id);');
62
        }
63
        if ($table->hasIndex('course')) {
64
            $this->addSql('DROP INDEX course ON c_announcement');
65
        }
66
        if ($table->hasIndex('session_id')) {
67
            $this->addSql('DROP INDEX session_id ON c_announcement');
68
        }
69
70
        $table = $schema->getTable('c_announcement_attachment');
71
        if ($table->hasIndex('course')) {
72
            $this->addSql('DROP INDEX course ON c_announcement_attachment');
73
        }
74
75
        $this->addSql('ALTER TABLE c_announcement_attachment CHANGE announcement_id announcement_id INT DEFAULT NULL');
76
77
        if (false === $table->hasColumn('resource_node_id')) {
78
            $this->addSql('ALTER TABLE c_announcement_attachment ADD resource_node_id INT DEFAULT NULL');
79
            $this->addSql(
80
                'ALTER TABLE c_announcement_attachment ADD CONSTRAINT FK_5480BD4A913AEA17 FOREIGN KEY (announcement_id) REFERENCES c_announcement (iid) ON DELETE CASCADE'
81
            );
82
            $this->addSql(
83
                'ALTER TABLE c_announcement_attachment ADD CONSTRAINT FK_5480BD4A1BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE'
84
            );
85
            $this->addSql('CREATE INDEX IDX_5480BD4A913AEA17 ON c_announcement_attachment (announcement_id)');
86
            $this->addSql('CREATE UNIQUE INDEX UNIQ_5480BD4A1BAD783F ON c_announcement_attachment (resource_node_id)');
87
        }
88
    }
89
90
    public function down(Schema $schema): void
91
    {
92
    }
93
}
94