migrations/Version20251002164733.php line 1

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace DoctrineMigrations;
  4. use Doctrine\DBAL\Schema\Schema;
  5. use Doctrine\Migrations\AbstractMigration;
  6. /**
  7.  * Migración: Agregar ventana de bloqueo temporal
  8.  * 
  9.  * Agrega la columna ventana_bloqueo a rate_limit (en horas) para configurar
  10.  * el período en el que se evalúan los bloqueos temporales.
  11.  * 
  12.  * Agrega la columna fecha_primer_bloqueo a blacklist para trackear
  13.  * el inicio de la ventana de bloqueos.
  14.  */
  15. final class Version20251002164733 extends AbstractMigration
  16. {
  17.     public function getDescription(): string
  18.     {
  19.         return 'Agregar ventana de bloqueo temporal: ventana_bloqueo a rate_limit y fecha_primer_bloqueo a blacklist';
  20.     }
  21.     public function up(Schema $schema): void
  22.     {
  23.         // Agregar columna ventana_bloqueo a rate_limit
  24.         $this->addSql('ALTER TABLE rate_limit ADD ventana_bloqueo INT NOT NULL DEFAULT 12 COMMENT \'Ventana en horas para evaluar bloqueos temporales\'');
  25.         
  26.         // Agregar columna fecha_primer_bloqueo a blacklist
  27.         $this->addSql('ALTER TABLE blacklist ADD fecha_primer_bloqueo DATETIME DEFAULT NULL COMMENT \'Fecha del primer bloqueo temporal en la ventana actual\'');
  28.     }
  29.     public function down(Schema $schema): void
  30.     {
  31.         // Rollback: eliminar columnas agregadas
  32.         $this->addSql('ALTER TABLE blacklist DROP COLUMN fecha_primer_bloqueo');
  33.         $this->addSql('ALTER TABLE rate_limit DROP COLUMN ventana_bloqueo');
  34.     }
  35. }