migrations/Version20260415000000.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. final class Version20260415000000 extends AbstractMigration
  7. {
  8.     public function getDescription(): string
  9.     {
  10.         return 'Asegura que existe el estado Pendiente en estado_solicitud (necesario para badge sidebar)';
  11.     }
  12.     public function up(Schema $schema): void
  13.     {
  14.         // Eliminar duplicados de 'Pendiente' dejando solo el de menor id
  15.         $this->addSql("DELETE FROM estado_solicitud
  16.             WHERE LOWER(nombre) = 'pendiente'
  17.             AND id NOT IN (
  18.                 SELECT min_id FROM (
  19.                     SELECT MIN(id) as min_id FROM estado_solicitud WHERE LOWER(nombre) = 'pendiente'
  20.                 ) t
  21.             )");
  22.         // Insertar si no existe ninguno
  23.         $this->addSql("INSERT INTO estado_solicitud (nombre)
  24.             SELECT 'Pendiente' FROM DUAL
  25.             WHERE NOT EXISTS (
  26.                 SELECT 1 FROM estado_solicitud WHERE LOWER(nombre) = 'pendiente'
  27.             )");
  28.     }
  29.     public function down(Schema $schema): void
  30.     {
  31.         // No eliminamos datos en el down para no romper referencias existentes
  32.     }
  33. }