"""Alert rules: a condition that fires on a rise, and the reading before this one. Revision ID: 0049_alert_on_a_rise Revises: 0048_tickets Create Date: 2026-10-30 """ from typing import Sequence, Union import sqlalchemy as sa from alembic import op revision: str = "0049_alert_on_a_rise" down_revision: Union[str, None] = "0048_tickets" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: # ALTER TYPE ... ADD VALUE cannot run inside a transaction block. with op.get_context().autocommit_block(): op.execute("ALTER TYPE alertoperator ADD VALUE IF NOT EXISTS 'rose'") op.add_column("alert_states", sa.Column("last_value", sa.Float, nullable=True)) def downgrade() -> None: # Postgres can't drop an enum value; 'rose' stays in the type, unused. op.execute("DELETE FROM alert_rules WHERE operator = 'rose'") op.drop_column("alert_states", "last_value")