SQL

CREATE TABLE events  (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  event_type TEXT NOT NULL,
  entity_type TEXT NOT NULL,
  entity_id TEXT,
  payload TEXT,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  processed BOOLEAN DEFAULT 0,
  processed_at DATETIME,
  event_id TEXT,
  booking_external_id TEXT,
  occurred_at DATETIME,
  payload_json TEXT,
  should_notify BOOLEAN DEFAULT 0,
  notified_at DATETIME
)

+ Add column

Columns

Column Data type Allow null Primary key Actions
id INTEGER Rename | Drop
event_type TEXT Rename | Drop
entity_type TEXT Rename | Drop
entity_id TEXT Rename | Drop
payload TEXT Rename | Drop
created_at DATETIME Rename | Drop
processed BOOLEAN Rename | Drop
processed_at DATETIME Rename | Drop
event_id TEXT Rename | Drop
booking_external_id TEXT Rename | Drop
occurred_at DATETIME Rename | Drop
payload_json TEXT Rename | Drop
should_notify BOOLEAN Rename | Drop
notified_at DATETIME Rename | Drop

+ Add index

Indexes

Name Columns Unique SQL Drop?
idx_events_booking booking_external_id SQL
CREATE INDEX idx_events_booking
ON events(booking_external_id)
Drop
idx_events_entity
  • entity_type
  • entity_id
SQL
CREATE INDEX idx_events_entity
ON events(entity_type, entity_id)
Drop
idx_events_event_id event_id SQL
CREATE INDEX idx_events_event_id
ON events(event_id)
Drop
idx_events_notify
  • should_notify
  • notified_at
SQL
CREATE INDEX idx_events_notify
ON events(should_notify, notified_at)
Drop
idx_events_processed
  • processed
  • created_at
SQL
CREATE INDEX idx_events_processed
ON events(processed, created_at)
Drop