0018_raw_op_payload.py
file-level
1
files
1
commits
0
hotspots
0
🧊 dead
0
💥 blast risk
| 1 | """Store raw DomainOp type and full op payload on symbol history entries. |
| 2 | |
| 3 | Revision ID: 0018 |
| 4 | Revises: 0017 |
| 5 | Create Date: 2026-05-04 |
| 6 | """ |
| 7 | from __future__ import annotations |
| 8 | |
| 9 | from alembic import op |
| 10 | import sqlalchemy as sa |
| 11 | |
| 12 | revision = "0018" |
| 13 | down_revision = "0017" |
| 14 | branch_labels = None |
| 15 | depends_on = None |
| 16 | |
| 17 | |
| 18 | def upgrade() -> None: |
| 19 | op.add_column( |
| 20 | "musehub_symbol_history_entries", |
| 21 | sa.Column("op_payload", sa.JSON(), nullable=True), |
| 22 | ) |
| 23 | # Widen op on symbol_intel — directory_rename is 17 chars, String(16) too narrow. |
| 24 | op.alter_column( |
| 25 | "musehub_symbol_intel", |
| 26 | "op", |
| 27 | type_=sa.String(32), |
| 28 | existing_type=sa.String(16), |
| 29 | existing_nullable=True, |
| 30 | ) |
| 31 | |
| 32 | |
| 33 | def downgrade() -> None: |
| 34 | from sqlalchemy import text |
| 35 | op.execute(text("ALTER TABLE musehub_symbol_history_entries DROP COLUMN IF EXISTS op_payload")) |
| 36 | op.alter_column( |
| 37 | "musehub_symbol_intel", |
| 38 | "op", |
| 39 | type_=sa.String(16), |
| 40 | existing_type=sa.String(32), |
| 41 | existing_nullable=True, |
| 42 | ) |