Files
ss-tools/backend/alembic/versions/b9c0d1e2f3a4_add_investigation_evidence_snapshot.py

29 lines
1.6 KiB
Python

# #region Alembic.ScenarioInvestigationEvidence [C:2] [TYPE Module] [SEMANTICS alembic,scenario,investigation,evidence]
"""add immutable evidence snapshots to scenario investigation projections"""
from collections.abc import Sequence
import sqlalchemy as sa
from alembic import op
revision: str = "b9c0d1e2f3a4"
down_revision: str | Sequence[str] | None = "a8b9c0d1e2f3"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None
def upgrade() -> None:
op.add_column("scenario_investigation_queue", sa.Column("evidence_snapshot", sa.JSON(), nullable=False, server_default=sa.text("'{}'")))
op.add_column("scenario_investigation_cases", sa.Column("evidence_snapshot", sa.JSON(), nullable=False, server_default=sa.text("'{}'")))
op.add_column("scenario_investigation_cases", sa.Column("linked_run_ids", sa.JSON(), nullable=False, server_default=sa.text("'[]'")))
op.add_column("scenario_investigation_cases", sa.Column("owner_id", sa.String(length=128), nullable=True))
op.create_index("ix_scenario_investigation_cases_owner_id", "scenario_investigation_cases", ["owner_id"])
def downgrade() -> None:
op.drop_index("ix_scenario_investigation_cases_owner_id", table_name="scenario_investigation_cases")
op.drop_column("scenario_investigation_cases", "owner_id")
op.drop_column("scenario_investigation_cases", "linked_run_ids")
op.drop_column("scenario_investigation_cases", "evidence_snapshot")
op.drop_column("scenario_investigation_queue", "evidence_snapshot")
# #endregion Alembic.ScenarioInvestigationEvidence