Passed
Push — master ( abf2c9...7e3711 )
by Julito
10:33
created

Version20201205102020::getDescription()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 3
rs 10
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 Doctrine\DBAL\Schema\Schema;
11
12
final class Version20201205102020 extends AbstractMigrationChamilo
13
{
14
    public function getDescription(): string
15
    {
16
        return 'Migrate skills';
17
    }
18
19
    public function up(Schema $schema): void
20
    {
21
        if (!$schema->hasTable('skill_rel_item_rel_user')) {
22
            $this->addSql(
23
                'CREATE TABLE skill_rel_item_rel_user (id INT AUTO_INCREMENT NOT NULL, skill_rel_item_id INT NOT NULL, user_id INT NOT NULL, result_id INT DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, created_by INT NOT NULL, updated_by INT NOT NULL, INDEX IDX_D1133E0DFD4B12DC (skill_rel_item_id), INDEX IDX_D1133E0DA76ED395 (user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;'
24
            );
25
            $this->addSql(
26
                'CREATE TABLE skill_rel_item (id INT AUTO_INCREMENT NOT NULL, skill_id INT DEFAULT NULL, item_type INT NOT NULL, item_id INT NOT NULL, obtain_conditions VARCHAR(255) DEFAULT NULL, requires_validation TINYINT(1) NOT NULL, is_real TINYINT(1) NOT NULL, c_id INT DEFAULT NULL, session_id INT DEFAULT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, created_by INT NOT NULL, updated_by INT NOT NULL, INDEX IDX_EB5B2A0D5585C142 (skill_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;'
27
            );
28
            $this->addSql(
29
                'CREATE TABLE skill_rel_course (id INT AUTO_INCREMENT NOT NULL, skill_id INT DEFAULT NULL, c_id INT NOT NULL, session_id INT NOT NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, INDEX IDX_E7CEC7FA5585C142 (skill_id), INDEX IDX_E7CEC7FA91D79BD3 (c_id), INDEX IDX_E7CEC7FA613FECDF (session_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;'
30
            );
31
            $this->addSql(
32
                'ALTER TABLE skill_rel_item_rel_user ADD CONSTRAINT FK_D1133E0DFD4B12DC FOREIGN KEY (skill_rel_item_id) REFERENCES skill_rel_item (id);'
33
            );
34
            $this->addSql(
35
                'ALTER TABLE skill_rel_item_rel_user ADD CONSTRAINT FK_D1133E0DA76ED395 FOREIGN KEY (user_id) REFERENCES user (id);'
36
            );
37
            $this->addSql(
38
                'ALTER TABLE skill_rel_item ADD CONSTRAINT FK_EB5B2A0D5585C142 FOREIGN KEY (skill_id) REFERENCES skill (id);'
39
            );
40
        }
41
42
        $table = $schema->getTable('skill_rel_course');
43
44
        if (!$table->hasForeignKey('FK_E7CEC7FA5585C142')) {
45
            $this->addSql(
46
                'ALTER TABLE skill_rel_course ADD CONSTRAINT FK_E7CEC7FA5585C142 FOREIGN KEY (skill_id) REFERENCES skill (id) ON DELETE CASCADE'
47
            );
48
        }
49
50
        if (!$table->hasForeignKey('FK_E7CEC7FA91D79BD3')) {
51
            $this->addSql(
52
                'ALTER TABLE skill_rel_course ADD CONSTRAINT FK_E7CEC7FA91D79BD3 FOREIGN KEY (c_id) REFERENCES course (id) ON DELETE CASCADE'
53
            );
54
        }
55
56
        if (!$table->hasForeignKey('FK_E7CEC7FA613FECDF')) {
57
            $this->addSql(
58
                'ALTER TABLE skill_rel_course ADD CONSTRAINT FK_E7CEC7FA613FECDF FOREIGN KEY (session_id) REFERENCES session (id) ON DELETE CASCADE'
59
            );
60
        }
61
62
        $table = $schema->getTable('skill_rel_user');
63
        if (!$table->hasColumn('validation_status')) {
64
            $this->addSql('ALTER TABLE skill_rel_user ADD validation_status INT NOT NULL');
65
        }
66
67
        if (!$table->hasForeignKey('FK_79D3D95A5585C142')) {
68
            $this->addSql(
69
                'ALTER TABLE skill_rel_user ADD CONSTRAINT FK_79D3D95A5585C142 FOREIGN KEY (skill_id) REFERENCES skill (id) ON DELETE CASCADE'
70
            );
71
        }
72
        if (!$table->hasForeignKey('FK_79D3D95A591CC992')) {
73
            $this->addSql(
74
                'ALTER TABLE skill_rel_user ADD CONSTRAINT FK_79D3D95A591CC992 FOREIGN KEY (course_id) REFERENCES course (id) ON DELETE CASCADE'
75
            );
76
        }
77
        if (!$table->hasForeignKey('FK_79D3D95A613FECDF')) {
78
            $this->addSql(
79
                'ALTER TABLE skill_rel_user ADD CONSTRAINT FK_79D3D95A613FECDF FOREIGN KEY (session_id) REFERENCES session (id) ON DELETE CASCADE'
80
            );
81
        }
82
        if (!$table->hasForeignKey('FK_79D3D95AA76ED395')) {
83
            $this->addSql(
84
                'ALTER TABLE skill_rel_user ADD CONSTRAINT FK_79D3D95AA76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE'
85
            );
86
        }
87
88
        $table = $schema->getTable('skill_rel_profile');
89
        $this->addSql('ALTER TABLE skill_rel_profile CHANGE skill_id skill_id INT DEFAULT NULL');
90
        $this->addSql('ALTER TABLE skill_rel_profile CHANGE profile_id profile_id INT DEFAULT NULL');
91
92
        if (!$table->hasForeignKey('FK_6E73EA8D5585C142')) {
93
            $this->addSql(
94
                'ALTER TABLE skill_rel_profile ADD CONSTRAINT FK_6E73EA8D5585C142 FOREIGN KEY (skill_id) REFERENCES skill (id) ON DELETE CASCADE'
95
            );
96
        }
97
98
        if (!$table->hasForeignKey('FK_6E73EA8DCCFA12B8')) {
99
            $this->addSql(
100
                'ALTER TABLE skill_rel_profile ADD CONSTRAINT FK_6E73EA8DCCFA12B8 FOREIGN KEY (profile_id) REFERENCES skill_profile (id) ON DELETE CASCADE'
101
            );
102
        }
103
104
        if (!$table->hasIndex('IDX_6E73EA8D5585C142')) {
105
            $this->addSql('CREATE INDEX IDX_6E73EA8D5585C142 ON skill_rel_profile (skill_id)');
106
        }
107
108
        if (!$table->hasIndex('IDX_6E73EA8DCCFA12B8')) {
109
            $this->addSql('CREATE INDEX IDX_6E73EA8DCCFA12B8 ON skill_rel_profile (profile_id)');
110
        }
111
112
        $table = $schema->getTable('skill_rel_gradebook');
113
114
        $this->addSql('ALTER TABLE skill_rel_gradebook CHANGE gradebook_id gradebook_id INT DEFAULT NULL');
115
        $this->addSql('ALTER TABLE skill_rel_gradebook CHANGE skill_id skill_id INT DEFAULT NULL');
116
117
        if (!$table->hasForeignKey('FK_4AC0B45E5585C142')) {
118
            $this->addSql(
119
                'ALTER TABLE skill_rel_gradebook ADD CONSTRAINT FK_4AC0B45E5585C142 FOREIGN KEY (skill_id) REFERENCES skill (id) ON DELETE CASCADE'
120
            );
121
        }
122
123
        if (!$table->hasForeignKey('FK_4AC0B45EAD3ED51C')) {
124
            $this->addSql(
125
                'ALTER TABLE skill_rel_gradebook ADD CONSTRAINT FK_4AC0B45EAD3ED51C FOREIGN KEY (gradebook_id) REFERENCES gradebook_category (id) ON DELETE CASCADE'
126
            );
127
        }
128
129
        if (!$table->hasIndex('IDX_4AC0B45E5585C142')) {
130
            $this->addSql('CREATE INDEX IDX_4AC0B45E5585C142 ON skill_rel_gradebook (skill_id)');
131
        }
132
        if (!$table->hasIndex('IDX_4AC0B45EAD3ED51C')) {
133
            $this->addSql('CREATE INDEX IDX_4AC0B45EAD3ED51C ON skill_rel_gradebook (gradebook_id)');
134
        }
135
136
137
    }
138
}
139