"""Home Assistant: an update the schedule installs can reboot the machine and follow it Revision ID: homeassistant_004_reboot Revises: homeassistant_003_health Create Date: 2026-11-02 """ from typing import Sequence, Union import sqlalchemy as sa from alembic import op revision: str = "homeassistant_004_reboot" down_revision: Union[str, None] = "homeassistant_003_health" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def _under_way(states: str) -> None: op.execute("DROP INDEX uq_homeassistant_update_under_way") op.execute("CREATE UNIQUE INDEX uq_homeassistant_update_under_way ON homeassistant_updates ((true)) " f"WHERE state IN ({states})") def upgrade() -> None: op.add_column("homeassistant_updates", sa.Column("reboot_after", sa.Boolean, nullable=False, server_default=sa.false())) op.add_column("homeassistant_updates", sa.Column("reboot_sent_at", sa.DateTime(timezone=True), nullable=True)) _under_way("'backing_up', 'installing', 'rebooting'") def downgrade() -> None: _under_way("'backing_up', 'installing'") op.drop_column("homeassistant_updates", "reboot_sent_at") op.drop_column("homeassistant_updates", "reboot_after")