gabriel / musehub public

0068_object_store_storage_uri.py file-level

at sha256:9 · View file ↗ · Intel ↗

History
1 files
1 commits
0 hotspots
0 🧊 dead
0 💥 blast risk
sha256:9 Merge 'fix/assignee-sigil-inline' into 'dev' — proposal: Assignee sigil… · gabriel · Jun 7, 2026
1 """Add storage_uri to musehub_commits and musehub_snapshots.
2
3 Phase 1 of the object-store invariant fix (issue #63): every commit and
4 snapshot must be written to S3 in muse binary format alongside the DB row.
5 storage_uri tracks the canonical S3 location, mirroring MusehubObject.
6 NULL on existing rows — backfill handled in Phase 5.
7
8 Revision ID: 0068
9 Revises: 0067
10 """
11 from __future__ import annotations
12
13 import sqlalchemy as sa
14 from alembic import op
15
16 revision: str = "0068"
17 down_revision: str = "0067"
18 branch_labels = None
19 depends_on = None
20
21
22 def upgrade() -> None:
23 op.add_column(
24 "musehub_commits",
25 sa.Column("storage_uri", sa.String(length=2048), nullable=True),
26 )
27 op.add_column(
28 "musehub_snapshots",
29 sa.Column("storage_uri", sa.String(length=2048), nullable=True),
30 )
31
32
33 def downgrade() -> None:
34 op.drop_column("musehub_snapshots", "storage_uri")
35 op.drop_column("musehub_commits", "storage_uri")