diff --git a/events/migrations/0009_event_ingested_event.py b/events/migrations/0009_event_ingested_event.py new file mode 100644 index 0000000..b0894db --- /dev/null +++ b/events/migrations/0009_event_ingested_event.py @@ -0,0 +1,18 @@ +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('ingest', '0003_decompressedevent_debug_info'), + ('events', '0008_alter_event_issue'), + ] + + operations = [ + migrations.AddField( + model_name='event', + name='ingested_event', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='ingest.decompressedevent'), + ), + ] diff --git a/events/models.py b/events/models.py index e51c4f2..71f8d68 100644 --- a/events/models.py +++ b/events/models.py @@ -47,6 +47,10 @@ class Event(models.Model): # https://develop.sentry.dev/sdk/event-payloads/types/ (more up-to-date and complete) id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) # This ID is internal to bugsink + + # null=True reveals our doubts about "should this always be set, or even be done at all?" + ingested_event = models.ForeignKey("ingest.DecompressedEvent", null=True, on_delete=models.SET_NULL) + server_side_timestamp = models.DateTimeField(db_index=True, blank=False, null=False) # not actually expected to be null, but we want to be able to delete issues without deleting events (cleanup later) @@ -158,6 +162,7 @@ class Event(models.Model): event_id=parsed_data["event_id"], project=ingested_event.project, defaults={ + 'ingested_event': ingested_event, # <= thoughts about defaults v.s. check-as-part-of-get go here :-) 'issue': issue, 'server_side_timestamp': ingested_event.timestamp, 'data': json.dumps(parsed_data),