"""Add parent_run_id lineage and child_run_id audit for re-evaluate. Revision ID: 0006_reevaluate_child_lineage Revises: 0005_review_api_and_audit Create Date: 2026-08-28 """ import sqlalchemy as sa from alembic import op revision: str = "0006_reevaluate_child_lineage" down_revision: str | None = "0005_review_api_and_audit" branch_labels: str | None = None depends_on: str | None = None def upgrade() -> None: op.add_column( "scoring_runs", sa.Column( "parent_run_id", sa.String(length=36), sa.ForeignKey("scoring_runs.id"), nullable=True, ), ) op.create_index( "ix_scoring_runs_parent_run_id", "scoring_runs", ["parent_run_id"], ) op.add_column( "review_audits", sa.Column("child_run_id", sa.String(length=36), nullable=True), ) op.alter_column( "review_audits", "effective_score", existing_type=sa.Integer(), nullable=True, ) def downgrade() -> None: op.execute( sa.text("UPDATE review_audits SET effective_score = 0 WHERE effective_score IS NULL") ) op.alter_column( "review_audits", "effective_score", existing_type=sa.Integer(), nullable=False, ) op.drop_column("review_audits", "child_run_id") op.drop_index("ix_scoring_runs_parent_run_id", table_name="scoring_runs") op.drop_column("scoring_runs", "parent_run_id")