Passed
Pull Request — master (#7217)
by
unknown
10:21
created

Version20200101040000::down()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 3
eloc 3
c 1
b 0
f 0
nc 2
nop 1
dl 0
loc 7
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 Version20200101040000 extends AbstractMigrationChamilo
13
{
14
    public function getDescription(): string
15
    {
16
        return 'Add require_unique boolean field to c_attendance (default false).';
17
    }
18
19
    public function up(Schema $schema): void
20
    {
21
        if ($schema->hasTable('c_attendance') && $schema->getTable('c_attendance')->hasColumn('require_unique')) {
22
            return;
23
        }
24
25
        $this->addSql('ALTER TABLE c_attendance ADD COLUMN require_unique BOOLEAN NOT NULL DEFAULT FALSE');
26
27
        // ensure existing rows are set (some DBs may already do it with DEFAULT, but keep it explicit).
28
        $this->addSql('UPDATE c_attendance SET require_unique = FALSE WHERE require_unique IS NULL');
29
    }
30
31
    public function down(Schema $schema): void
32
    {
33
        if (!$schema->hasTable('c_attendance') || !$schema->getTable('c_attendance')->hasColumn('require_unique')) {
34
            return;
35
        }
36
37
        $this->addSql('ALTER TABLE c_attendance DROP COLUMN require_unique');
38
    }
39
}
40