Remove unused imports (UserCheck, Loader2, ShieldOff) and replace non-existent SmartphoneOff icon with Smartphone in admin components. Includes backend query fixes, performance indexes migration, and admin page shared utilities extraction. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
65 lines
1.9 KiB
Python
65 lines
1.9 KiB
Python
"""Add performance indexes for hot query paths.
|
|
|
|
Covers:
|
|
- calendar_events range queries scoped by calendar (dashboard, notifications)
|
|
- calendar_events starred query (dashboard widget)
|
|
- calendar_events parent_event_id (recurring series DELETE)
|
|
- user_sessions lookup (auth middleware, every request)
|
|
- ntfy_sent purge query (background job, every 60s)
|
|
|
|
Revision ID: 035
|
|
Revises: 034
|
|
Create Date: 2026-02-27
|
|
"""
|
|
from alembic import op
|
|
|
|
revision = "035"
|
|
down_revision = "034"
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
# Composite index for event range queries scoped by calendar
|
|
op.create_index(
|
|
"ix_calendar_events_calendar_start_end",
|
|
"calendar_events",
|
|
["calendar_id", "start_datetime", "end_datetime"],
|
|
)
|
|
|
|
# Partial index for starred events dashboard query
|
|
op.create_index(
|
|
"ix_calendar_events_calendar_starred",
|
|
"calendar_events",
|
|
["calendar_id", "is_starred"],
|
|
)
|
|
|
|
# FK lookup index for recurring children DELETE
|
|
op.create_index(
|
|
"ix_calendar_events_parent_id",
|
|
"calendar_events",
|
|
["parent_event_id"],
|
|
)
|
|
|
|
# Composite index for session validation (runs on every authenticated request)
|
|
op.create_index(
|
|
"ix_user_sessions_lookup",
|
|
"user_sessions",
|
|
["user_id", "revoked", "expires_at"],
|
|
)
|
|
|
|
# Index for ntfy_sent purge query (DELETE WHERE sent_at < cutoff)
|
|
op.create_index(
|
|
"ix_ntfy_sent_sent_at",
|
|
"ntfy_sent",
|
|
["sent_at"],
|
|
)
|
|
|
|
|
|
def downgrade() -> None:
|
|
op.drop_index("ix_ntfy_sent_sent_at", table_name="ntfy_sent")
|
|
op.drop_index("ix_user_sessions_lookup", table_name="user_sessions")
|
|
op.drop_index("ix_calendar_events_parent_id", table_name="calendar_events")
|
|
op.drop_index("ix_calendar_events_calendar_starred", table_name="calendar_events")
|
|
op.drop_index("ix_calendar_events_calendar_start_end", table_name="calendar_events")
|