gabriel / musehub public
0062_pack_index_global.py python
45 lines 1.5 KB
Raw
sha256:1ccb8409daa5aabe577bd26d11b56ed12f3376d64011d0e75a247e81211a66ee docs(mwp4/phase5): tick Phase 5 checkboxes, close musehub#109 Sonnet 4.6 20 days ago
1 """Make musehub_pack_index global — drop repo_id column and its FK.
2
3 Pack index entries are content-addressed: the same object_id+pack_id pair is valid
4 for every repo that has ever pushed those bytes. repo_id was the wrong abstraction
5 and caused wire_fetch_mpack to miss packs from other repos (same objects, different repo).
6
7 PK (object_id, pack_id) is unchanged. Drop the (repo_id, object_id) index and replace
8 it with a plain object_id index — lookups are now global, not per-repo.
9 """
10
11 from __future__ import annotations
12
13 import sqlalchemy as sa
14 from alembic import op
15
16 revision = "0062"
17 down_revision = "0061"
18 branch_labels = None
19 depends_on = None
20
21
22 def upgrade() -> None:
23 op.drop_index("ix_musehub_pack_index_repo_object", table_name="musehub_pack_index")
24 op.drop_constraint("musehub_pack_index_repo_id_fkey", "musehub_pack_index", type_="foreignkey")
25 op.drop_column("musehub_pack_index", "repo_id")
26 op.create_index("ix_musehub_pack_index_object_id", "musehub_pack_index", ["object_id"])
27
28
29 def downgrade() -> None:
30 op.drop_index("ix_musehub_pack_index_object_id", table_name="musehub_pack_index")
31 op.add_column(
32 "musehub_pack_index",
33 sa.Column("repo_id", sa.String(128), nullable=False, server_default=""),
34 )
35 op.create_foreign_key(
36 "musehub_pack_index_repo_id_fkey",
37 "musehub_pack_index", "musehub_repos",
38 ["repo_id"], ["repo_id"],
39 ondelete="CASCADE",
40 )
41 op.create_index(
42 "ix_musehub_pack_index_repo_object",
43 "musehub_pack_index",
44 ["repo_id", "object_id"],
45 )
File History 2 commits
sha256:1ccb8409daa5aabe577bd26d11b56ed12f3376d64011d0e75a247e81211a66ee docs(mwp4/phase5): tick Phase 5 checkboxes, close musehub#109 Sonnet 4.6 20 days ago
sha256:2c523da45351334b5c4dbefed4dc3dd553b3faa8737a4e6caf301e5dc82141be test(mwp4): Phase 0 RED reproduction tests for RC-4 ordering race Sonnet 4.6 20 days ago