Passed
Push — master ( e66a3e...15c60f )
by Paweł
04:21
created

Version20190804190330   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
wmc 3
eloc 13
c 1
b 0
f 1
dl 0
loc 41
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A up() 0 24 1
A getDescription() 0 3 1
A down() 0 5 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Migrations;
6
7
use Doctrine\DBAL\Schema\Schema;
8
use Doctrine\Migrations\AbstractMigration;
9
10
final class Version20190804190330 extends AbstractMigration
11
{
12
    public function getDescription(): string
13
    {
14
        return 'Add bookmarks';
15
    }
16
17
    public function up(Schema $schema): void
18
    {
19
        $this->abortIf('postgresql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'postgresql\'.');
20
21
        $this->addSql('CREATE TABLE npd_bookmark (
22
          uuid UUID NOT NULL, 
23
          user_uuid UUID DEFAULT NULL, 
24
          lesson_uuid UUID NOT NULL, 
25
          title VARCHAR(255) NOT NULL, 
26
          time_in_seconds INT NOT NULL, 
27
          created TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, 
28
          updated TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL, 
29
          PRIMARY KEY(uuid)
30
        )');
31
        $this->addSql('CREATE INDEX IDX_8E334C53ABFE1C6F ON npd_bookmark (user_uuid)');
32
        $this->addSql('CREATE INDEX IDX_8E334C53E80E96C2 ON npd_bookmark (lesson_uuid)');
33
        $this->addSql('COMMENT ON COLUMN npd_bookmark.uuid IS \'(DC2Type:uuid)\'');
34
        $this->addSql('COMMENT ON COLUMN npd_bookmark.user_uuid IS \'(DC2Type:uuid)\'');
35
        $this->addSql('COMMENT ON COLUMN npd_bookmark.lesson_uuid IS \'(DC2Type:uuid)\'');
36
        $this->addSql('ALTER TABLE 
37
          npd_bookmark 
38
        ADD 
39
          CONSTRAINT FK_8E334C53ABFE1C6F FOREIGN KEY (user_uuid) REFERENCES npd_user (uuid) NOT DEFERRABLE INITIALLY IMMEDIATE');
40
        $this->addSql('ALTER TABLE 
41
          npd_bookmark 
42
        ADD 
43
          CONSTRAINT FK_8E334C53E80E96C2 FOREIGN KEY (lesson_uuid) REFERENCES npd_lesson (uuid) NOT DEFERRABLE INITIALLY IMMEDIATE');
44
    }
45
46
    public function down(Schema $schema): void
47
    {
48
        $this->abortIf('postgresql' !== $this->connection->getDatabasePlatform()->getName(), 'Migration can only be executed safely on \'postgresql\'.');
49
50
        $this->addSql('DROP TABLE npd_bookmark');
51
    }
52
}
53