SQL

CREATE TABLE sessions  (
  id TEXT PRIMARY KEY,
  -- 32 Bytes hex
  kind TEXT NOT NULL,
  -- 'trainer' | 'student'
  trainer_id INTEGER REFERENCES trainers(id) ON DELETE CASCADE,
  student_id INTEGER REFERENCES students(id) ON DELETE CASCADE,
  created_at TEXT NOT NULL DEFAULT (datetime('now')),
  expires_at TEXT NOT NULL,
  last_seen_at TEXT NOT NULL DEFAULT (datetime('now')),
  ip TEXT,
  user_agent TEXT
)

+ Add column

Columns

Column Data type Allow null Primary key Actions
id TEXT Rename | Drop
kind TEXT Rename | Drop
trainer_id INTEGER Rename | Drop
student_id INTEGER Rename | Drop
created_at TEXT Rename | Drop
expires_at TEXT Rename | Drop
last_seen_at TEXT Rename | Drop
ip TEXT Rename | Drop
user_agent TEXT Rename | Drop

Foreign Keys

Column Destination
student_id students.id
trainer_id trainers.id

+ Add index

Indexes

Name Columns Unique SQL Drop?
idx_sessions_expires expires_at SQL
CREATE INDEX idx_sessions_expires
ON sessions(expires_at)
Drop
idx_sessions_student student_id SQL
CREATE INDEX idx_sessions_student
ON sessions(student_id) WHERE student_id IS NOT NULL
Drop
idx_sessions_trainer trainer_id SQL
CREATE INDEX idx_sessions_trainer
ON sessions(trainer_id) WHERE trainer_id IS NOT NULL
Drop
sqlite_autoindex_sessions_1 id SQL
-- no sql found --
Drop