<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
final class Version20260708120000 extends AbstractMigration
{
public function getDescription(): string
{
return 'PAES-06: crea tabla sede (catálogo maestro) y agrega sede_id a ensayo_paes_sede (nullable para no romper datos existentes).';
}
public function up(Schema $schema): void
{
$this->addSql("CREATE TABLE sede (
id INT AUTO_INCREMENT NOT NULL,
nombre VARCHAR(255) NOT NULL,
activo TINYINT(1) NOT NULL DEFAULT 1,
fecha_creacion DATETIME NOT NULL,
UNIQUE KEY uniq_sede_nombre (nombre(191)),
PRIMARY KEY(id)
) DEFAULT CHARACTER SET utf8mb4 COLLATE `utf8mb4_unicode_ci` ENGINE = InnoDB");
$this->addSql("ALTER TABLE ensayo_paes_sede ADD sede_id INT DEFAULT NULL");
$this->addSql("CREATE INDEX idx_ensayo_paes_sede_sede ON ensayo_paes_sede (sede_id)");
$this->addSql("ALTER TABLE ensayo_paes_sede ADD CONSTRAINT fk_ensayo_paes_sede_sede
FOREIGN KEY (sede_id) REFERENCES sede (id) ON DELETE SET NULL");
}
public function down(Schema $schema): void
{
$this->addSql("ALTER TABLE ensayo_paes_sede DROP FOREIGN KEY fk_ensayo_paes_sede_sede");
$this->addSql("DROP INDEX idx_ensayo_paes_sede_sede ON ensayo_paes_sede");
$this->addSql("ALTER TABLE ensayo_paes_sede DROP COLUMN sede_id");
$this->addSql("DROP TABLE sede");
}
}