Passed
Push — master ( c83bf1...0c3c7b )
by Julito
09:39
created

Version20200821224242::up()   C

Complexity

Conditions 9
Paths 256

Size

Total Lines 58
Code Lines 35

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
cc 9
eloc 35
nc 256
nop 1
dl 0
loc 58
rs 6.5222
c 2
b 1
f 0

How to fix   Long Method   

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
namespace Chamilo\CoreBundle\Migrations\Schema\V200;
4
5
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
6
use Doctrine\DBAL\Schema\Schema;
7
8
final class Version20200821224242 extends AbstractMigrationChamilo
9
{
10
    public function up(Schema $schema): void
11
    {
12
        $this->addSql('DELETE FROM message WHERE user_sender_id IS NULL OR user_sender_id = 0');
13
        $this->addSql('ALTER TABLE message CHANGE user_receiver_id user_receiver_id INT DEFAULT NULL');
14
        $this->addSql('UPDATE message SET user_receiver_id = NULL WHERE user_receiver_id = 0');
15
        $this->addSql('DELETE FROM message WHERE user_sender_id NOT IN (SELECT id FROM user)');
16
        $this->addSql(
17
            'DELETE FROM message WHERE user_receiver_id IS NOT NULL AND user_receiver_id NOT IN (SELECT id FROM user)'
18
        );
19
20
        $table = $schema->getTable('message');
21
        if (false === $table->hasForeignKey('FK_B6BD307FF6C43E79')) {
22
            $this->addSql(
23
                'ALTER TABLE message ADD CONSTRAINT FK_B6BD307FF6C43E79 FOREIGN KEY (user_sender_id) REFERENCES user (id)'
24
            );
25
        }
26
        if (false === $table->hasForeignKey('FK_B6BD307F64482423')) {
27
            $this->addSql(
28
                'ALTER TABLE message ADD CONSTRAINT FK_B6BD307F64482423 FOREIGN KEY (user_receiver_id) REFERENCES user (id)'
29
            );
30
        }
31
        if (!$table->hasIndex('idx_message_user_receiver_status')) {
32
            $this->addSql('CREATE INDEX idx_message_user_receiver_status ON message (user_receiver_id, msg_status)');
33
        }
34
35
        if (!$table->hasIndex('idx_message_status')) {
36
            $this->addSql('CREATE INDEX idx_message_status ON message (msg_status)');
37
        }
38
39
        if (!$table->hasIndex('idx_message_receiver_status_send_date')) {
40
            $this->addSql(
41
                'CREATE INDEX idx_message_receiver_status_send_date ON message (user_receiver_id, msg_status, send_date)'
42
            );
43
        }
44
45
        $this->addSql('ALTER TABLE message CHANGE msg_status msg_status SMALLINT NOT NULL;');
46
47
        $table = $schema->hasTable('message_feedback');
48
        if (false === $table) {
49
            $this->addSql(
50
                'CREATE TABLE message_feedback (id BIGINT AUTO_INCREMENT NOT NULL, message_id BIGINT NOT NULL, user_id INT NOT NULL, liked TINYINT(1) DEFAULT 0 NOT NULL, disliked TINYINT(1) DEFAULT 0 NOT NULL, updated_at DATETIME NOT NULL, INDEX IDX_DB0F8049537A1329 (message_id), INDEX IDX_DB0F8049A76ED395 (user_id), INDEX idx_message_feedback_uid_mid (message_id, user_id), PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE = InnoDB ROW_FORMAT = DYNAMIC;'
51
            );
52
            $this->addSql(
53
                'ALTER TABLE message_feedback ADD CONSTRAINT FK_DB0F8049537A1329 FOREIGN KEY (message_id) REFERENCES message (id) ON DELETE CASCADE'
54
            );
55
            $this->addSql(
56
                'ALTER TABLE message_feedback ADD CONSTRAINT FK_DB0F8049A76ED395 FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE;'
57
            );
58
        }
59
60
        $table = $schema->getTable('message_attachment');
61
        if (false === $table->hasIndex('IDX_B68FF524537A1329')) {
62
            $this->addSql('CREATE INDEX IDX_B68FF524537A1329 ON message_attachment (message_id)');
63
        }
64
        $this->addSql('ALTER TABLE message_attachment CHANGE message_id message_id BIGINT NOT NULL');
65
66
        if (false === $table->hasForeignKey('FK_B68FF524537A1329')) {
67
            $this->addSql('ALTER TABLE message_attachment ADD CONSTRAINT FK_B68FF524537A1329 FOREIGN KEY (message_id) REFERENCES message (id)');
68
        }
69
    }
70
71
    public function down(Schema $schema): void
72
    {
73
    }
74
}
75