SQL

CREATE TABLE jobs  (
  id TEXT PRIMARY KEY,
  job_type TEXT NOT NULL,
  params TEXT,
  status TEXT NOT NULL CHECK (status IN ('queued','leased','running','done','failed','dead')),
  run_at TEXT NOT NULL,
  lease_expires_at TEXT,
  attempts INTEGER DEFAULT 0,
  max_attempts INTEGER DEFAULT 5,
  last_error TEXT,
  created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
  updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now'))
)

+ Add column

Columns

Column Data type Allow null Primary key Actions
id TEXT Rename | Drop
job_type TEXT Rename | Drop
params TEXT Rename | Drop
status TEXT Rename | Drop
run_at TEXT Rename | Drop
lease_expires_at TEXT Rename | Drop
attempts INTEGER Rename | Drop
max_attempts INTEGER Rename | Drop
last_error TEXT Rename | Drop
created_at TEXT Rename | Drop
updated_at TEXT Rename | Drop

+ Add index

Indexes

Name Columns Unique SQL Drop?
idx_jobs_lease lease_expires_at SQL
CREATE INDEX idx_jobs_lease
ON jobs (lease_expires_at)
Drop
idx_jobs_status_runat
  • status
  • run_at
SQL
CREATE INDEX idx_jobs_status_runat
ON jobs (status, run_at)
Drop
idx_jobs_status_updatedat
  • status
  • updated_at
SQL
CREATE INDEX idx_jobs_status_updatedat
ON jobs (status, updated_at)
Drop
sqlite_autoindex_jobs_1 id SQL
-- no sql found --
Drop