"""Syslog: devices that reach Steward through Docker's one address, told apart by the name in their lines Revision ID: syslog_003_sender Revises: syslog_002_patterns Create Date: 2026-10-19 """ from typing import Sequence, Union import sqlalchemy as sa from alembic import op revision: str = "syslog_003_sender" down_revision: Union[str, None] = "syslog_002_patterns" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: op.add_column("syslog_sources", sa.Column("sender", sa.String(255), nullable=False, server_default="")) op.drop_constraint("syslog_sources_address_key", "syslog_sources", type_="unique") op.create_unique_constraint("uq_syslog_sources_address_sender", "syslog_sources", ["address", "sender"]) def downgrade() -> None: op.drop_constraint("uq_syslog_sources_address_sender", "syslog_sources", type_="unique") op.execute("DELETE FROM syslog_sources WHERE sender <> ''") op.create_unique_constraint("syslog_sources_address_key", "syslog_sources", ["address"]) op.drop_column("syslog_sources", "sender")