<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20260821090000 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add payload column to dtb_mail_queue and drop unique_user_event for contact emails';
}
public function up(Schema $schema): void
{
if (!$schema->hasTable('dtb_mail_queue')) {
return;
}
// PostgreSQL: may be a unique index and/or a unique constraint
$this->addSql('ALTER TABLE dtb_mail_queue DROP CONSTRAINT IF EXISTS unique_user_event');
$this->addSql('DROP INDEX IF EXISTS unique_user_event');
$table = $schema->getTable('dtb_mail_queue');
if (!$table->hasColumn('payload')) {
$this->addSql('ALTER TABLE dtb_mail_queue ADD payload TEXT DEFAULT NULL');
}
}
public function down(Schema $schema): void
{
if (!$schema->hasTable('dtb_mail_queue')) {
return;
}
$table = $schema->getTable('dtb_mail_queue');
if ($table->hasColumn('payload')) {
$this->addSql('ALTER TABLE dtb_mail_queue DROP COLUMN payload');
}
$this->addSql('CREATE UNIQUE INDEX IF NOT EXISTS unique_user_event ON dtb_mail_queue (user_id, event_type)');
}
}