"""Add timing and error fields to scans table Revision ID: 003 Revises: 002 Create Date: 2025-11-14 """ from alembic import op import sqlalchemy as sa # revision identifiers, used by Alembic revision = '003' down_revision = '002' branch_labels = None depends_on = None def upgrade(): """ Add fields for tracking scan execution timing and errors. New fields: - started_at: When scan execution actually started - completed_at: When scan execution finished (success or failure) - error_message: Error message if scan failed """ with op.batch_alter_table('scans') as batch_op: batch_op.add_column(sa.Column('started_at', sa.DateTime(), nullable=True, comment='Scan execution start time')) batch_op.add_column(sa.Column('completed_at', sa.DateTime(), nullable=True, comment='Scan execution completion time')) batch_op.add_column(sa.Column('error_message', sa.Text(), nullable=True, comment='Error message if scan failed')) def downgrade(): """Remove the timing and error fields.""" with op.batch_alter_table('scans') as batch_op: batch_op.drop_column('error_message') batch_op.drop_column('completed_at') batch_op.drop_column('started_at')