Files
gw/backend/alembic/versions/c1e4b8f2a7d9_add_booking_indexes.py
T
ponzischeme89 6d44e05de4 v1
2026-04-18 07:23:55 +12:00

37 lines
1.3 KiB
Python

"""add booking performance indexes
Revision ID: c1e4b8f2a7d9
Revises: a4d9c7e18b21
Create Date: 2026-04-08 14:00:00.000000
"""
from typing import Sequence, Union
from alembic import op
revision: str = 'c1e4b8f2a7d9'
down_revision: Union[str, None] = 'a4d9c7e18b21'
branch_labels: Union[str, Sequence[str], None] = None
depends_on: Union[str, Sequence[str], None] = None
def upgrade() -> None:
# Speed up filtering bookings by status (most common admin query filter)
op.create_index('ix_bookings_status', 'bookings', ['status'])
# Speed up date-range queries and ordering used by the schedule view
op.create_index('ix_bookings_requested_date', 'bookings', ['requested_date'])
# Speed up the SSE signature query: max(updated_at) table scan → index scan
op.create_index('ix_bookings_updated_at', 'bookings', ['updated_at'])
# Composite: member + status used by member-facing /members/bookings endpoint
op.create_index('ix_bookings_member_id_status', 'bookings', ['member_id', 'status'])
def downgrade() -> None:
op.drop_index('ix_bookings_member_id_status', table_name='bookings')
op.drop_index('ix_bookings_updated_at', table_name='bookings')
op.drop_index('ix_bookings_requested_date', table_name='bookings')
op.drop_index('ix_bookings_status', table_name='bookings')