<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Tabla de cola de Symfony Messenger.
*
* El DSN del transport lleva auto_setup=0 (MESSENGER_TRANSPORT_DSN), así que la tabla no se
* crea sola en tiempo de ejecución. El esquema reproduce el de
* Symfony\Component\Messenger\Bridge\Doctrine\Transport\Connection::addTableToSchema().
*/
final class Version20260915144437 extends AbstractMigration
{
public function getDescription(): string
{
return 'Tabla messenger_messages para la cola de Symfony Messenger';
}
public function up(Schema $schema): void
{
// IF NOT EXISTS a propósito: en algunos entornos la tabla ya se creó a mano, porque
// hasta ahora no había migración que la contemplara.
$this->addSql('CREATE TABLE IF NOT EXISTS messenger_messages (
id BIGINT AUTO_INCREMENT NOT NULL,
body LONGTEXT NOT NULL,
headers LONGTEXT NOT NULL,
queue_name VARCHAR(190) NOT NULL,
created_at DATETIME NOT NULL,
available_at DATETIME NOT NULL,
delivered_at DATETIME DEFAULT NULL,
INDEX IDX_75EA56E0FB7336F0 (queue_name),
INDEX IDX_75EA56E0E3BD61CE (available_at),
INDEX IDX_75EA56E016BA31DB (delivered_at),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB');
}
public function down(Schema $schema): void
{
$this->addSql('DROP TABLE IF EXISTS messenger_messages');
}
}