first commit
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
"""separate result execution status and verdict
|
||||
|
||||
Revision ID: 0009
|
||||
Revises: 0008
|
||||
"""
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
revision = "0009"
|
||||
down_revision = "0008"
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade():
|
||||
with op.batch_alter_table("test_runs") as batch:
|
||||
batch.add_column(sa.Column("error_count", sa.Integer(), nullable=False, server_default="0"))
|
||||
op.execute("UPDATE test_runs SET error_count = failed_count")
|
||||
with op.batch_alter_table("test_runs") as batch:
|
||||
batch.drop_column("failed_count")
|
||||
with op.batch_alter_table("test_results") as batch:
|
||||
batch.add_column(
|
||||
sa.Column("execution_status", sa.String(32), nullable=False, server_default="completed")
|
||||
)
|
||||
batch.add_column(sa.Column("verdict", sa.String(32), nullable=True))
|
||||
op.execute(
|
||||
"UPDATE test_results SET "
|
||||
"execution_status = CASE WHEN status = 'error' THEN 'error' ELSE 'completed' END, "
|
||||
"verdict = CASE WHEN status IN "
|
||||
"('pass', 'fail', 'needs_human_review', 'judge_format_error') THEN status ELSE NULL END"
|
||||
)
|
||||
with op.batch_alter_table("test_results") as batch:
|
||||
batch.drop_index("ix_test_results_status")
|
||||
batch.drop_column("status")
|
||||
batch.create_index("ix_test_results_execution_status", ["execution_status"])
|
||||
batch.create_index("ix_test_results_verdict", ["verdict"])
|
||||
batch.create_unique_constraint(
|
||||
"uq_test_results_run_execution", ["run_id", "execution_id"]
|
||||
)
|
||||
|
||||
|
||||
def downgrade():
|
||||
with op.batch_alter_table("test_runs") as batch:
|
||||
batch.add_column(sa.Column("failed_count", sa.Integer(), nullable=False, server_default="0"))
|
||||
op.execute("UPDATE test_runs SET failed_count = error_count")
|
||||
with op.batch_alter_table("test_runs") as batch:
|
||||
batch.drop_column("error_count")
|
||||
with op.batch_alter_table("test_results") as batch:
|
||||
batch.add_column(sa.Column("status", sa.String(32), nullable=False, server_default="completed"))
|
||||
op.execute(
|
||||
"UPDATE test_results SET status = "
|
||||
"CASE WHEN execution_status = 'error' THEN 'error' ELSE COALESCE(verdict, 'completed') END"
|
||||
)
|
||||
with op.batch_alter_table("test_results") as batch:
|
||||
batch.drop_constraint("uq_test_results_run_execution", type_="unique")
|
||||
batch.drop_index("ix_test_results_verdict")
|
||||
batch.drop_index("ix_test_results_execution_status")
|
||||
batch.drop_column("verdict")
|
||||
batch.drop_column("execution_status")
|
||||
batch.create_index("ix_test_results_status", ["status"])
|
||||
Reference in New Issue
Block a user