From 98b154f5ece922cdb46885a943bb1ec46eebad15 Mon Sep 17 00:00:00 2001 From: Nick Mowen Date: Thu, 20 Apr 2023 15:55:39 -0600 Subject: [PATCH] Add source id for index --- frigate/models.py | 1 + frigate/timeline.py | 6 +++--- migrations/013_create_timeline_table.py | 5 +++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/frigate/models.py b/frigate/models.py index 6cb96a5ba..03f0272df 100644 --- a/frigate/models.py +++ b/frigate/models.py @@ -36,6 +36,7 @@ class Timeline(Model): # type: ignore[misc] timestamp = DateTimeField() camera = CharField(index=True, max_length=20) source = CharField(index=True, max_length=20) # ex: tracked object, audio, external + source_id = CharField(index=True, max_length=30) class_type = CharField(max_length=50) # ex: entered_zone, audio_heard data = JSONField() # ex: tracked object id, region, box, etc. diff --git a/frigate/timeline.py b/frigate/timeline.py index 6dfae68e5..12aa42ac4 100644 --- a/frigate/timeline.py +++ b/frigate/timeline.py @@ -60,9 +60,9 @@ class TimelineProcessor(threading.Thread): timestamp=event_data["frame_time"], camera=camera, source="tracked_object", + source_id=event_data["id"], class_type="visible", data={ - "event_id": event_data["id"], "region": event_data["region"], "box": event_data["box"], }, @@ -75,9 +75,9 @@ class TimelineProcessor(threading.Thread): timestamp=event_data["frame_time"], camera=camera, source="tracked_object", + source_id=event_data["id"], class_type="entered_zone", data={ - "event_id": event_data["id"], "region": event_data["region"], "box": event_data["box"], "zones": event_data["current_zones"], @@ -88,9 +88,9 @@ class TimelineProcessor(threading.Thread): timestamp=event_data["frame_time"], camera=camera, source="tracked_object", + source_id=event_data["id"], class_type="gone", data={ - "event_id": event_data["id"], "region": event_data["region"], "box": event_data["box"], }, diff --git a/migrations/013_create_timeline_table.py b/migrations/013_create_timeline_table.py index 163eaf914..9fed3f1ab 100644 --- a/migrations/013_create_timeline_table.py +++ b/migrations/013_create_timeline_table.py @@ -37,10 +37,11 @@ SQL = pw.SQL def migrate(migrator, database, fake=False, **kwargs): migrator.sql( - 'CREATE TABLE IF NOT EXISTS "timeline" ("timestamp" DATETIME NOT NULL, "camera" VARCHAR(20) NOT NULL, "source" VARCHAR(20) NOT NULL, "class_type" VARCHAR(50) NOT NULL, "data" JSON)' + 'CREATE TABLE IF NOT EXISTS "timeline" ("timestamp" DATETIME NOT NULL, "camera" VARCHAR(20) NOT NULL, "source" VARCHAR(20) NOT NULL, "source_id" VARCHAR(30) NOT NULL, "class_type" VARCHAR(50) NOT NULL, "data" JSON)' ) migrator.sql('CREATE INDEX IF NOT EXISTS "timeline_camera" ON "timeline" ("camera")') - migrator.sql('CREATE INDEX IF NOT EXISTS "timeline_input_type" ON "timeline" ("source")') + migrator.sql('CREATE INDEX IF NOT EXISTS "timeline_source" ON "timeline" ("source")') + migrator.sql('CREATE INDEX IF NOT EXISTS "timeline_source_id" ON "timeline" ("source_id")') def rollback(migrator, database, fake=False, **kwargs):