<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Types\Types;
use Doctrine\Migrations\AbstractMigration;
use Symfony\Component\Uid\Ulid;
use Symfony\Component\Uid\Uuid;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20220525235557 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE campaign ADD access_token BINARY(16) NOT NULL COMMENT \'(DC2Type:uuid)\'');
$campaigns = $this->connection->createQueryBuilder()
->select('c.id')
->from('campaign', 'c')
->orderBy('c.id')
->executeQuery()
->fetchFirstColumn();
foreach ($campaigns as $id) {
usleep(100);
$this->addSql('UPDATE campaign SET access_token = :accessToken WHERE id = :id', [
'id' => $id,
'accessToken' => Uuid::v6()->toBinary(),
]);
}
$this->addSql('CREATE UNIQUE INDEX UNIQ_1F1512DDB6A2DD68 ON campaign (access_token)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('DROP INDEX UNIQ_1F1512DDB6A2DD68 ON campaign');
$this->addSql('ALTER TABLE campaign DROP access_token');
}
public function isTransactional(): bool
{
return false;
}
}