0066_snapshot_delta_columns.py
file-level
1
files
1
commits
0
hotspots
0
🧊 dead
0
💥 blast risk
| 1 | """Add parent_snapshot_id and delta_blob to musehub_snapshots. |
| 2 | |
| 3 | Enables tip-to-tip object diffing in wire_fetch_mpack (new_oids = want_tip - |
| 4 | have_tip in O(files) rather than O(commits × files)) and delta-compressed |
| 5 | snapshot wire format (send only the delta, not the full manifest, per commit). |
| 6 | """ |
| 7 | |
| 8 | from __future__ import annotations |
| 9 | |
| 10 | import sqlalchemy as sa |
| 11 | from alembic import op |
| 12 | |
| 13 | revision = "0066" |
| 14 | down_revision = "0065" |
| 15 | branch_labels = None |
| 16 | depends_on = None |
| 17 | |
| 18 | |
| 19 | def upgrade() -> None: |
| 20 | op.add_column( |
| 21 | "musehub_snapshots", |
| 22 | sa.Column("parent_snapshot_id", sa.String(128), nullable=True), |
| 23 | ) |
| 24 | op.add_column( |
| 25 | "musehub_snapshots", |
| 26 | sa.Column("delta_blob", sa.LargeBinary, nullable=True), |
| 27 | ) |
| 28 | |
| 29 | |
| 30 | def downgrade() -> None: |
| 31 | op.drop_column("musehub_snapshots", "delta_blob") |
| 32 | op.drop_column("musehub_snapshots", "parent_snapshot_id") |