40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
"""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')
|