"""add indexes on foreign-key columns Indexes the FK columns that are commonly filtered/joined and are not already the left-most column of an existing unique constraint (those are covered by the constraint's index). Names match SQLModel's index=True default (ix__) so the ORM and DB stay in sync. Revision ID: a7b8c9d0e1f2 Revises: f6a7b8c9d0e1 Create Date: 2026-07-01 09:30:00.000000 """ from typing import Sequence, Union from alembic import op revision: str = 'a7b8c9d0e1f2' down_revision: Union[str, None] = 'f6a7b8c9d0e1' branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None # (index_name, table, column) _INDEXES = [ ('ix_users_primary_account_id', 'users', 'primary_account_id'), ('ix_holdings_entity_id', 'holdings', 'entity_id'), ('ix_positions_holding_id', 'positions', 'holding_id'), ('ix_valuation_rounds_submitted_by', 'valuation_rounds', 'submitted_by'), ('ix_valuation_rounds_approved_by', 'valuation_rounds', 'approved_by'), ('ix_valuations_position_id', 'valuations', 'position_id'), ('ix_audit_log_actor_user_id', 'audit_log', 'actor_user_id'), ('ix_entity_access_entity_id', 'entity_access', 'entity_id'), ('ix_documents_entity_id', 'documents', 'entity_id'), ('ix_documents_investor_user_id', 'documents', 'investor_user_id'), ('ix_documents_uploaded_by', 'documents', 'uploaded_by'), ('ix_capital_account_statements_investor_user_id', 'capital_account_statements', 'investor_user_id'), ('ix_capital_account_statements_document_id', 'capital_account_statements', 'document_id'), ] def upgrade() -> None: for name, table, column in _INDEXES: op.create_index(name, table, [column]) def downgrade() -> None: for name, table, _column in reversed(_INDEXES): op.drop_index(name, table_name=table)