Passed
Pull Request — master (#6835)
by Angel Fernando Quiroz
17:36 queued 08:49
created

Version20250927180000::up()   F

Complexity

Conditions 11
Paths 1024

Size

Total Lines 76
Code Lines 44

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 11
eloc 44
c 1
b 0
f 0
nc 1024
nop 1
dl 0
loc 76
rs 3.15

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
/* For licensing terms, see /license.txt */
4
5
declare(strict_types=1);
6
7
namespace Chamilo\CoreBundle\Migrations\Schema\V200;
8
9
use Chamilo\CoreBundle\Migrations\AbstractMigrationChamilo;
10
use Doctrine\DBAL\Schema\Schema;
11
12
class Version20250927180000 extends AbstractMigrationChamilo
13
{
14
    public function up(Schema $schema): void
15
    {
16
        $tblPortfolioRelTag = $schema->getTable('portfolio_rel_tag');
17
        $tblPortfolio = $schema->getTable('portfolio');
18
        $tblPortfolioCategory = $schema->getTable('portfolio_category');
19
20
        if ($tblPortfolioRelTag->hasForeignKey('FK_DB73447291D79BD3')) {
21
            $this->addSql('ALTER TABLE portfolio_rel_tag DROP FOREIGN KEY FK_DB73447291D79BD3');
22
        }
23
24
        if ($tblPortfolioRelTag->hasForeignKey('FK_DB734472BAD26311')) {
25
            $this->addSql('ALTER TABLE portfolio_rel_tag DROP FOREIGN KEY FK_DB734472BAD26311');
26
        }
27
28
        if ($tblPortfolioRelTag->hasForeignKey('FK_DB734472613FECDF')) {
29
            $this->addSql('ALTER TABLE portfolio_rel_tag DROP FOREIGN KEY FK_DB734472613FECDF');
30
        }
31
32
        $this->addSql('DELETE FROM portfolio_rel_tag WHERE c_id NOT IN (SELECT id FROM course)');
33
        $this->addSql('DELETE FROM portfolio_rel_tag WHERE session_id NOT IN (SELECT id FROM session)');
34
35
        $this->addSql('ALTER TABLE portfolio_rel_tag ADD CONSTRAINT FK_DB73447291D79BD3 FOREIGN KEY (c_id) REFERENCES course (id)');
36
        $this->addSql('ALTER TABLE portfolio_rel_tag ADD CONSTRAINT FK_DB734472BAD26311 FOREIGN KEY (tag_id) REFERENCES tag (id)');
37
        $this->addSql('ALTER TABLE portfolio_rel_tag ADD CONSTRAINT FK_DB734472613FECDF FOREIGN KEY (session_id) REFERENCES session (id)');
38
39
        $this->addSql('ALTER TABLE portfolio_category CHANGE title title LONGTEXT NOT NULL, CHANGE parent_id parent_id INT DEFAULT NULL');
40
        $this->addSql('UPDATE portfolio_category SET parent_id = NULL WHERE parent_id NOT IN (SELECT id FROM portfolio_category)');
41
42
        if (!$tblPortfolioCategory->hasForeignKey('FK_7AC64359727ACA70')) {
43
            $this->addSql('ALTER TABLE portfolio_category ADD CONSTRAINT FK_7AC64359727ACA70 FOREIGN KEY (parent_id) REFERENCES portfolio_category (id) ON DELETE SET NULL');
44
        }
45
46
        if (!$tblPortfolioCategory->hasIndex('IDX_7AC64359727ACA70')) {
47
            $this->addSql('CREATE INDEX IDX_7AC64359727ACA70 ON portfolio_category (parent_id)');
48
        }
49
50
        $this->addSql('ALTER TABLE portfolio_comment ADD resource_node_id INT DEFAULT NULL');
51
        $this->addSql('ALTER TABLE portfolio_comment ADD CONSTRAINT FK_C2C17DA21BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE');
52
        $this->addSql('CREATE UNIQUE INDEX UNIQ_C2C17DA21BAD783F ON portfolio_comment (resource_node_id)');
53
54
        $this->addSql('ALTER TABLE portfolio ADD resource_node_id INT DEFAULT NULL, CHANGE title title LONGTEXT NOT NULL');
55
        $this->addSql('ALTER TABLE portfolio ADD CONSTRAINT FK_A9ED10621BAD783F FOREIGN KEY (resource_node_id) REFERENCES resource_node (id) ON DELETE CASCADE');
56
        $this->addSql('CREATE UNIQUE INDEX UNIQ_A9ED10621BAD783F ON portfolio (resource_node_id)');
57
58
        if ($tblPortfolio->hasForeignKey('FK_A9ED106212469DE2')) {
59
            $this->addSql('ALTER TABLE portfolio DROP FOREIGN KEY FK_A9ED106212469DE2');
60
        }
61
62
        $this->addSql('UPDATE portfolio SET category_id = NULL WHERE category_id NOT IN (SELECT id FROM portfolio_category)');
63
        $this->addSql('ALTER TABLE portfolio ADD CONSTRAINT FK_A9ED106212469DE2 FOREIGN KEY (category_id) REFERENCES portfolio_category (id) ON DELETE SET NULL');
64
65
        if (!$tblPortfolio->hasColumn('duplicated_from')) {
66
            $this->addSql('ALTER TABLE portfolio ADD duplicated_from INT DEFAULT NULL');
67
            $this->addSql('ALTER TABLE portfolio ADD CONSTRAINT FK_A9ED1062FC4CB679 FOREIGN KEY (duplicated_from) REFERENCES portfolio (id) ON DELETE SET NULL');
68
            $this->addSql('CREATE INDEX IDX_A9ED1062FC4CB679 ON portfolio (duplicated_from)');
69
        } else {
70
            $this->addSql('UPDATE portfolio SET duplicated_from = NULL WHERE duplicated_from NOT IN (SELECT id FROM portfolio)');
71
        }
72
73
        if ($tblPortfolio->hasColumn('is_visible')) {
74
            $this->addSql('ALTER TABLE portfolio CHANGE is_visible visibility SMALLINT DEFAULT 1 NOT NULL');
75
        }
76
77
        if ($tblPortfolio->hasForeignKey('FK_A9ED106291D79BD3')) {
78
            $this->addSql('ALTER TABLE portfolio DROP FOREIGN KEY FK_A9ED106291D79BD3');
79
            // borrar columna c_id
80
        }
81
82
        $this->addSql('ALTER TABLE portfolio ADD CONSTRAINT FK_A9ED106291D79BD3 FOREIGN KEY (c_id) REFERENCES course (id)');
83
84
        if ($tblPortfolio->hasForeignKey('FK_A9ED1062613FECDF')) {
85
            $this->addSql('ALTER TABLE portfolio DROP FOREIGN KEY FK_A9ED1062613FECDF');
86
            // borrar columna session_id
87
        }
88
89
        $this->addSql('ALTER TABLE portfolio ADD CONSTRAINT FK_A9ED1062613FECDF FOREIGN KEY (session_id) REFERENCES session (id)');
90
    }
91
}
92