"""Add performance indexes to calendar_events Revision ID: 054 Revises: 053 """ from alembic import op revision = "054" down_revision = "053" def upgrade(): # Covers range queries in dashboard today's events and events list op.create_index( "ix_calendar_events_calendar_start", "calendar_events", ["calendar_id", "start_datetime"], ) # Covers bulk DELETE on recurrence edit/regeneration and sibling lookups op.create_index( "ix_calendar_events_parent_event_id", "calendar_events", ["parent_event_id"], ) # Covers starred widget query (calendar_id + is_starred + start_datetime) op.create_index( "ix_calendar_events_calendar_starred_start", "calendar_events", ["calendar_id", "is_starred", "start_datetime"], ) def downgrade(): op.drop_index("ix_calendar_events_calendar_starred_start", table_name="calendar_events") op.drop_index("ix_calendar_events_parent_event_id", table_name="calendar_events") op.drop_index("ix_calendar_events_calendar_start", table_name="calendar_events")