<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Add performance indexes to std_pages_tracking table for recommendation queries
*/
final class Version20251222000000 extends AbstractMigration
{
public function getDescription(): string
{
return 'Add performance indexes to std_pages_tracking table for recommendation queries';
}
public function up(Schema $schema): void
{
$this->addSql('CREATE INDEX idx_tracking_id ON std_pages_tracking (tracking_id)');
$this->addSql('CREATE INDEX idx_visited_at ON std_pages_tracking (visited_at)');
$this->addSql('CREATE INDEX idx_hashed_ip ON std_pages_tracking (hashed_ip)');
$this->addSql('CREATE INDEX idx_event ON std_pages_tracking (event)');
$this->addSql('CREATE INDEX idx_tracking_page_event ON std_pages_tracking (tracking_id, page_id, event)');
$this->addSql('CREATE INDEX idx_hashed_ip_visited ON std_pages_tracking (hashed_ip, visited_at)');
}
public function down(Schema $schema): void
{
$this->addSql('DROP INDEX idx_tracking_id ON std_pages_tracking');
$this->addSql('DROP INDEX idx_visited_at ON std_pages_tracking');
$this->addSql('DROP INDEX idx_hashed_ip ON std_pages_tracking');
$this->addSql('DROP INDEX idx_event ON std_pages_tracking');
$this->addSql('DROP INDEX idx_tracking_page_event ON std_pages_tracking');
$this->addSql('DROP INDEX idx_hashed_ip_visited ON std_pages_tracking');
}
}