Passed
Push — master ( d0c183...89bdb5 )
by Janko
13:17
created

Version20240816121145_DatabaseEntry   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 15
dl 0
loc 26
rs 10
c 0
b 0
f 0
wmc 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Stu\Migrations\Pgsql;
6
7
use Override;
8
use Doctrine\DBAL\Schema\Schema;
9
use Doctrine\Migrations\AbstractMigration;
10
11
final class Version20240816121145_DatabaseEntry extends AbstractMigration
12
{
13
    #[Override]
14
    public function getDescription(): string
15
    {
16
        return 'Add database entry foreign keys and indices';
17
    }
18
19
    #[Override]
20
    public function up(Schema $schema): void
21
    {
22
        $this->addSql('ALTER TABLE stu_ships ALTER database_id DROP NOT NULL');
23
        $this->addSql('UPDATE stu_ships SET database_id = null WHERE database_id = 0');
24
        $this->addSql('ALTER TABLE stu_colonies ADD CONSTRAINT FK_D1C60F73F0AA09DB FOREIGN KEY (database_id) REFERENCES stu_database_entrys (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
25
        $this->addSql('CREATE UNIQUE INDEX UNIQ_D1C60F73F0AA09DB ON stu_colonies (database_id)');
26
        $this->addSql('ALTER TABLE stu_ships ADD CONSTRAINT FK_A560DD56F0AA09DB FOREIGN KEY (database_id) REFERENCES stu_database_entrys (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
27
        $this->addSql('CREATE UNIQUE INDEX UNIQ_A560DD56F0AA09DB ON stu_ships (database_id)');
28
    }
29
30
    #[Override]
31
    public function down(Schema $schema): void
32
    {
33
        $this->addSql('ALTER TABLE stu_ships DROP CONSTRAINT FK_A560DD56F0AA09DB');
34
        $this->addSql('DROP INDEX UNIQ_A560DD56F0AA09DB');
35
        $this->addSql('ALTER TABLE stu_colonies DROP CONSTRAINT FK_D1C60F73F0AA09DB');
36
        $this->addSql('DROP INDEX UNIQ_D1C60F73F0AA09DB');
37
    }
38
}
39