29 lines
1.6 KiB
Python
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
|