migrations/Version20260314120000.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.  * Add composite indexes for list queries: activity (campaign_id, status),
  8.  * campaign (sponsor_id, status), campaign (status, deadline_at).
  9.  */
  10. final class Version20260314120000 extends AbstractMigration
  11. {
  12.     public function getDescription(): string
  13.     {
  14.         return 'Add indexes campaign_status on activity, sponsor_status and status_deadline on campaign for list query optimization';
  15.     }
  16.     public function up(Schema $schema): void
  17.     {
  18.         $this->addSql('CREATE INDEX campaign_status ON activity (campaign_id, status)');
  19.         $this->addSql('CREATE INDEX sponsor_status ON campaign (sponsor_id, status)');
  20.         $this->addSql('CREATE INDEX status_deadline ON campaign (status, deadline_at)');
  21.     }
  22.     public function down(Schema $schema): void
  23.     {
  24.         $this->addSql('DROP INDEX campaign_status ON activity');
  25.         $this->addSql('DROP INDEX sponsor_status ON campaign');
  26.         $this->addSql('DROP INDEX status_deadline ON campaign');
  27.     }
  28. }