Files
ModelForge/backend/alembic/versions/20260826_0017_m11_evidence_classes.py
T

83 lines
2.2 KiB
Python

"""Classify project-fit evidence and defer production validation explicitly.
Revision ID: 20260826_0017
Revises: 20260826_0016
"""
from collections.abc import Sequence
import sqlalchemy as sa
from alembic import op
revision: str = "20260826_0017"
down_revision: str | None = "20260826_0016"
branch_labels: str | Sequence[str] | None = None
depends_on: str | Sequence[str] | None = None
def upgrade() -> None:
op.add_column(
"project_fit_evidence",
sa.Column(
"evidence_class",
sa.String(32),
server_default="CATALOG_REFERENCE",
nullable=False,
),
)
op.add_column(
"project_fit_evidence",
sa.Column(
"engineering_integration",
sa.String(32),
server_default="PASS",
nullable=False,
),
)
op.add_column(
"project_fit_evidence",
sa.Column(
"production_validation",
sa.String(48),
server_default="DEFERRED_EXTERNAL_VALIDATION",
nullable=False,
),
)
op.add_column(
"project_fit_evidence",
sa.Column("production_action", sa.String(32), server_default="NONE", nullable=False),
)
op.create_index(
"ix_project_fit_evidence_evidence_class",
"project_fit_evidence",
["evidence_class"],
)
op.create_index(
"ix_project_fit_evidence_production_validation",
"project_fit_evidence",
["production_validation"],
)
for column in (
"evidence_class",
"engineering_integration",
"production_validation",
"production_action",
):
op.alter_column("project_fit_evidence", column, server_default=None)
def downgrade() -> None:
op.drop_index(
"ix_project_fit_evidence_production_validation",
table_name="project_fit_evidence",
)
op.drop_index(
"ix_project_fit_evidence_evidence_class",
table_name="project_fit_evidence",
)
op.drop_column("project_fit_evidence", "production_action")
op.drop_column("project_fit_evidence", "production_validation")
op.drop_column("project_fit_evidence", "engineering_integration")
op.drop_column("project_fit_evidence", "evidence_class")