-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
/
Version20220722074516.php
36 lines (29 loc) · 1.13 KB
/
Version20220722074516.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
declare(strict_types=1);
namespace Mautic\Migrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\Exception\SkipMigration;
use Mautic\CoreBundle\Doctrine\AbstractMauticMigration;
final class Version20220722074516 extends AbstractMauticMigration
{
public function preUp(Schema $schema): void
{
if ($schema->getTable($this->getTableName())->hasColumn('deduplicate')) {
throw new SkipMigration("The deduplicate column has already been added to the {$this->getTableName()} table.");
}
}
public function up(Schema $schema): void
{
$this->addSql("ALTER TABLE {$this->getTableName()} ADD deduplicate VARCHAR(32) DEFAULT NULL");
$this->addSql("CREATE INDEX deduplicate_date_added ON {$this->getTableName()} (deduplicate, date_added)");
}
public function down(Schema $schema): void
{
$this->addSql("DROP INDEX deduplicate_date_added ON {$this->getTableName()}");
$this->addSql("ALTER TABLE {$this->getTableName()} DROP deduplicate");
}
private function getTableName(): string
{
return $this->prefix.'notifications';
}
}