diff --git a/frigate/models.py b/frigate/models.py index fa4ba0478..7634e71a4 100644 --- a/frigate/models.py +++ b/frigate/models.py @@ -33,16 +33,11 @@ class Event(Model): # type: ignore[misc] class Timeline(Model): # type: ignore[misc] - id = CharField(null=False, primary_key=True, max_length=30) - camera = CharField(index=True, max_length=20) - input_type = CharField(index=True, max_length=20) # ex: object, audio, external - detection_type = CharField(max_length=50) # ex: entered_front_yard, heard_dog_barking timestamp = DateTimeField() - - # event-only fields - event_id = CharField() - region = JSONField() - box = JSONField() + camera = CharField(index=True, max_length=20) + source = CharField(index=True, max_length=20) # ex: tracked object, audio, external + class_type = CharField(max_length=50) # ex: entered_front_yard, heard_dog_barking + data = JSONField() # ex: tracked object id, region, box, etc. class Recordings(Model): # type: ignore[misc] diff --git a/migrations/013_create_timeline_table.py b/migrations/013_create_timeline_table.py index 23e8bce7d..163eaf914 100644 --- a/migrations/013_create_timeline_table.py +++ b/migrations/013_create_timeline_table.py @@ -37,10 +37,10 @@ SQL = pw.SQL def migrate(migrator, database, fake=False, **kwargs): migrator.sql( - 'CREATE TABLE IF NOT EXISTS "timeline" ("id" VARCHAR(30) NOT NULL PRIMARY KEY, "camera" VARCHAR(20) NOT NULL, "input_type" VARCHAR(20) NOT NULL, "detection_type" VARCHAR(50) NOT NULL, "timestamp" DATETIME NOT NULL, "event_id" VARCHAR(30), "region" JSON, "box" JSON)' + '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)' ) migrator.sql('CREATE INDEX IF NOT EXISTS "timeline_camera" ON "timeline" ("camera")') - migrator.sql('CREATE INDEX IF NOT EXISTS "timeline_input_type" ON "timeline" ("input_type")') + migrator.sql('CREATE INDEX IF NOT EXISTS "timeline_input_type" ON "timeline" ("source")') def rollback(migrator, database, fake=False, **kwargs):