gabriel / musehub public
0022_add_composite_indexes.py python
51 lines 2.9 KB
Raw
sha256:a10adeeb7a0169cb9900f9806ed7a973047258abb6283724fe55e8eb68ff3f0a init: musehub initial commit Human 171 days ago
1 """Add composite indexes for high-traffic query patterns.
2
3 Composite indexes added:
4 musehub_repos: (owner, visibility) explore page
5 musehub_repos: (deleted_at) soft-delete filter
6 musehub_commits: (repo_id, branch) HEAD lookup
7 musehub_commits: (repo_id, timestamp) recent commits feed
8 musehub_objects: (repo_id, deleted_at) quota SUM
9 musehub_issues: (repo_id, state) open/closed filter
10 musehub_issues: (repo_id, number) per-repo lookup
11 musehub_proposals: (repo_id, state) open/closed/merged filter
12 musehub_proposals: (repo_id, pr_number) per-repo proposal lookup
13 musehub_symbol_index: (repo_id, built_at) latest-index query
14
15 Revision ID: 0022
16 Revises: 0021
17 """
18 from __future__ import annotations
19
20 from alembic import op
21
22 revision = "0022"
23 down_revision = "0021"
24 branch_labels = None
25 depends_on = None
26
27
28 def upgrade() -> None:
29 op.create_index("ix_musehub_repos_owner_visibility", "musehub_repos", ["owner", "visibility"])
30 op.create_index("ix_musehub_repos_deleted_at", "musehub_repos", ["deleted_at"])
31 op.create_index("ix_musehub_commits_repo_branch", "musehub_commits", ["repo_id", "branch"])
32 op.create_index("ix_musehub_commits_repo_timestamp", "musehub_commits", ["repo_id", "timestamp"])
33 op.create_index("ix_musehub_objects_repo_deleted_at", "musehub_objects", ["repo_id", "deleted_at"])
34 op.create_index("ix_musehub_issues_repo_state", "musehub_issues", ["repo_id", "state"])
35 op.create_index("ix_musehub_issues_repo_number", "musehub_issues", ["repo_id", "number"])
36 op.create_index("ix_musehub_proposals_repo_state", "musehub_proposals", ["repo_id", "state"])
37 op.create_index("ix_musehub_proposals_repo_number", "musehub_proposals", ["repo_id", "pr_number"])
38 op.create_index("ix_musehub_symbol_index_repo_built_at", "musehub_symbol_index", ["repo_id", "built_at"])
39
40
41 def downgrade() -> None:
42 op.drop_index("ix_musehub_repos_owner_visibility", table_name="musehub_repos")
43 op.drop_index("ix_musehub_repos_deleted_at", table_name="musehub_repos")
44 op.drop_index("ix_musehub_commits_repo_branch", table_name="musehub_commits")
45 op.drop_index("ix_musehub_commits_repo_timestamp", table_name="musehub_commits")
46 op.drop_index("ix_musehub_objects_repo_deleted_at", table_name="musehub_objects")
47 op.drop_index("ix_musehub_issues_repo_state", table_name="musehub_issues")
48 op.drop_index("ix_musehub_issues_repo_number", table_name="musehub_issues")
49 op.drop_index("ix_musehub_proposals_repo_state", table_name="musehub_proposals")
50 op.drop_index("ix_musehub_proposals_repo_number", table_name="musehub_proposals")
51 op.drop_index("ix_musehub_symbol_index_repo_built_at", table_name="musehub_symbol_index")
File History 1 commit
sha256:a10adeeb7a0169cb9900f9806ed7a973047258abb6283724fe55e8eb68ff3f0a init: musehub initial commit Human 171 days ago