45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
"""add_remediation_fields
|
|
|
|
Revision ID: b007remediation
|
|
Revises: b006notifications
|
|
Create Date: 2026-02-09 11:30:00.000000
|
|
|
|
"""
|
|
from typing import Sequence, Union
|
|
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
from sqlalchemy.dialects.postgresql import UUID
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision: str = 'b007remediation'
|
|
down_revision: Union[str, Sequence[str], None] = 'b006notifications'
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
"""Add remediation fields to tests and test_templates."""
|
|
# Tests — remediation fields
|
|
op.add_column('tests', sa.Column('remediation_steps', sa.Text(), nullable=True))
|
|
op.add_column('tests', sa.Column('remediation_status', sa.String(), nullable=True))
|
|
op.add_column('tests', sa.Column('remediation_assignee', UUID(as_uuid=True), nullable=True))
|
|
op.create_foreign_key(
|
|
'fk_tests_remediation_assignee',
|
|
'tests', 'users',
|
|
['remediation_assignee'], ['id'],
|
|
)
|
|
|
|
# TestTemplates — suggested_remediation
|
|
op.add_column('test_templates', sa.Column('suggested_remediation', sa.Text(), nullable=True))
|
|
|
|
|
|
def downgrade() -> None:
|
|
"""Remove remediation fields."""
|
|
op.drop_column('test_templates', 'suggested_remediation')
|
|
op.drop_constraint('fk_tests_remediation_assignee', 'tests', type_='foreignkey')
|
|
op.drop_column('tests', 'remediation_assignee')
|
|
op.drop_column('tests', 'remediation_status')
|
|
op.drop_column('tests', 'remediation_steps')
|