Passed
Push — master ( fc13ff...4dcdf9 )
by Julito
12:40
created

Version20170625122900::down()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Importance

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