From c1a19ecf0674ca9bbb57fdba657736f4bb810c5b Mon Sep 17 00:00:00 2001 From: Sirius DevOps Date: Mon, 24 Aug 2026 21:25:21 -0400 Subject: [PATCH] Migration 004: add 'camera' to event_source_type enum so ingester can store camera events --- alembic/versions/004_camera_enum.py | 36 +++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 alembic/versions/004_camera_enum.py diff --git a/alembic/versions/004_camera_enum.py b/alembic/versions/004_camera_enum.py new file mode 100644 index 0000000..7424719 --- /dev/null +++ b/alembic/versions/004_camera_enum.py @@ -0,0 +1,36 @@ +"""events.camera source type + +Revision ID: 004_camera_enum +Revises: 003_news +Create Date: 2026-08-25 +""" + +from alembic import op + +revision = '004_camera_enum' +down_revision = '003_news' +branch_labels = None +depends_on = None + + +def upgrade() -> None: + # Postgres enums have no IF NOT EXISTS for values — guard manually so the + # migration stays idempotent across restarts. + op.execute(""" + DO $$ + BEGIN + IF NOT EXISTS ( + SELECT 1 FROM pg_enum e + JOIN pg_typname t ON t.oid = e.enumtypid + WHERE t.typname = 'event_source_type' AND e.enumlabel = 'camera' + ) THEN + ALTER TYPE event_source_type ADD VALUE 'camera'; + END IF; + END + $$; + """) + + +def downgrade() -> None: + # Enum value removal is not supported by Postgres; leave it in place. + pass