Passed
Push — master ( 526730...ce0e49 )
by Julito
15:06 queued 06:42
created

Version20170625153000   A

Complexity

Total Complexity 11

Size/Duplication

Total Lines 96
Duplicated Lines 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 59
c 1
b 1
f 0
dl 0
loc 96
rs 10
wmc 11

1 Method

Rating   Name   Duplication   Size   Complexity  
F up() 0 94 11
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
 * c_forum.
12
 */
13
class Version20170625153000 extends AbstractMigrationChamilo
14
{
15
    public function up(Schema $schema): void
16
    {
17
        $table = $schema->getTable('c_forum_attachment');
18
19
        if (false === $table->hasColumn('resource_node_id')) {
20
            $this->addSql('ALTER TABLE c_forum_attachment ADD resource_node_id INT DEFAULT NULL');
21
            $this->addSql(
22
                'ALTER TABLE c_forum_attachment ADD CONSTRAINT FK_F1113A884B89032C FOREIGN KEY (post_id) REFERENCES c_forum_post (iid) ON DELETE CASCADE'
23
            );
24
            $this->addSql(
25
                'ALTER TABLE c_forum_attachment ADD CONSTRAINT FK_F1113A881BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE'
26
            );
27
            $this->addSql('CREATE UNIQUE INDEX UNIQ_F1113A881BAD783F ON c_forum_attachment (resource_node_id)');
28
29
            $this->addSql('CREATE INDEX IDX_F1113A884B89032C ON c_forum_attachment (post_id)');
30
        }
31
        $table = $schema->getTable('c_forum_category');
32
33
        if (false === $table->hasColumn('resource_node_id')) {
34
            $this->addSql('ALTER TABLE c_forum_category ADD resource_node_id INT DEFAULT NULL');
35
            $this->addSql(
36
                'ALTER TABLE c_forum_category ADD CONSTRAINT FK_D627B86E1BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE'
37
            );
38
            $this->addSql('CREATE UNIQUE INDEX UNIQ_D627B86E1BAD783F ON c_forum_category (resource_node_id)');
39
        }
40
41
        $table = $schema->getTable('c_forum_forum');
42
        if (false === $table->hasColumn('resource_node_id')) {
43
            $this->addSql('ALTER TABLE c_forum_forum ADD resource_node_id INT DEFAULT NULL, DROP forum_id');
44
            $this->addSql(
45
                'ALTER TABLE c_forum_forum ADD CONSTRAINT FK_47A9C991BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE'
46
            );
47
            $this->addSql(
48
                'ALTER TABLE c_forum_forum ADD CONSTRAINT FK_47A9C9921BF9426 FOREIGN KEY (forum_category) REFERENCES c_forum_category (iid) ON DELETE SET NULL'
49
            );
50
            $this->addSql('CREATE UNIQUE INDEX UNIQ_47A9C991BAD783F ON c_forum_forum (resource_node_id)');
51
        }
52
53
        $this->addSql('ALTER TABLE c_forum_forum DROP FOREIGN KEY FK_47A9C9921BF9426');
54
55
        $table = $schema->getTable('c_forum_thread');
56
        if ($table->hasForeignKey('FK_5DA7884C29CCBAD0')) {
57
            $this->addSql('ALTER TABLE c_forum_thread DROP FOREIGN KEY FK_5DA7884C29CCBAD0');
58
        }
59
60
        if (false === $table->hasColumn('resource_node_id')) {
61
            $this->addSql('ALTER TABLE c_forum_thread ADD resource_node_id INT DEFAULT NULL, DROP thread_id');
62
            $this->addSql(
63
                'ALTER TABLE c_forum_thread ADD CONSTRAINT FK_5DA7884C1BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE'
64
            );
65
            $this->addSql(
66
                'ALTER TABLE c_forum_thread ADD CONSTRAINT FK_5DA7884C29CCBAD0 FOREIGN KEY (forum_id) REFERENCES c_forum_forum (iid) ON DELETE SET NULL'
67
            );
68
            $this->addSql('CREATE UNIQUE INDEX UNIQ_5DA7884C1BAD783F ON c_forum_thread (resource_node_id)');
69
        }
70
        //$this->addSql('ALTER TABLE c_forum_thread_qualify DROP id');
71
        //$this->addSql('ALTER TABLE c_forum_thread_qualify_log DROP id');
72
73
        $table = $schema->getTable('c_forum_post');
74
        if ($table->hasForeignKey('FK_B5BEF559E2904019')) {
75
            $this->addSql('ALTER TABLE c_forum_post DROP FOREIGN KEY FK_B5BEF559E2904019');
76
        }
77
78
        if (false === $table->hasColumn('resource_node_id')) {
79
            $this->addSql('CREATE UNIQUE INDEX UNIQ_B5BEF5591BAD783F ON c_forum_post (resource_node_id)');
80
            $this->addSql('ALTER TABLE c_forum_post ADD resource_node_id INT DEFAULT NULL');
81
            $this->addSql(
82
                'ALTER TABLE c_forum_post ADD CONSTRAINT FK_B5BEF55929CCBAD0 FOREIGN KEY (forum_id) REFERENCES c_forum_forum (iid) ON DELETE SET NULL'
83
            );
84
            $this->addSql(
85
                'ALTER TABLE c_forum_post ADD CONSTRAINT FK_B5BEF5591BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE'
86
            );
87
            $this->addSql(
88
                'ALTER TABLE c_forum_post ADD CONSTRAINT FK_B5BEF559E2904019 FOREIGN KEY (thread_id) REFERENCES c_forum_thread (iid) ON DELETE SET NULL'
89
            );
90
        }
91
92
        $table = $schema->getTable('c_course_description');
93
        if (false === $table->hasColumn('resource_node_id')) {
94
            $this->addSql('ALTER TABLE c_course_description ADD resource_node_id INT DEFAULT NULL');
95
            $this->addSql('ALTER TABLE c_course_description ADD CONSTRAINT FK_EC3CD8091BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE');
96
            $this->addSql('CREATE UNIQUE INDEX UNIQ_EC3CD8091BAD783F ON c_course_description (resource_node_id)');
97
        }
98
99
        $table = $schema->getTable('c_notebook');
100
101
        if ($table->hasIndex('course')) {
102
            $this->addSql('DROP INDEX course ON c_notebook');
103
        }
104
105
        if (false === $table->hasColumn('resource_node_id')) {
106
            $this->addSql('ALTER TABLE c_notebook ADD resource_node_id INT DEFAULT NULL, DROP notebook_id');
107
            $this->addSql('ALTER TABLE c_notebook ADD CONSTRAINT FK_E7EE1CE01BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE');
108
            $this->addSql('CREATE UNIQUE INDEX UNIQ_E7EE1CE01BAD783F ON c_notebook (resource_node_id)');
109
        }
110
    }
111
}
112