0001_initial_schema.up.sql

 1CREATE TABLE IF NOT EXISTS tasks (
 2    id          TEXT PRIMARY KEY,
 3    title       TEXT NOT NULL,
 4    description TEXT DEFAULT '',
 5    type        TEXT DEFAULT 'task',
 6    priority    INTEGER DEFAULT 2,
 7    status      TEXT DEFAULT 'open',
 8    parent      TEXT DEFAULT '',
 9    created     TEXT NOT NULL,
10    updated     TEXT NOT NULL
11);
12
13CREATE TABLE IF NOT EXISTS labels (
14    task_id TEXT,
15    label   TEXT,
16    PRIMARY KEY (task_id, label),
17    FOREIGN KEY (task_id) REFERENCES tasks(id)
18);
19
20CREATE TABLE IF NOT EXISTS blockers (
21    task_id    TEXT,
22    blocker_id TEXT,
23    PRIMARY KEY (task_id, blocker_id),
24    FOREIGN KEY (task_id) REFERENCES tasks(id)
25);
26
27CREATE INDEX IF NOT EXISTS idx_status   ON tasks(status);
28CREATE INDEX IF NOT EXISTS idx_priority ON tasks(priority);
29CREATE INDEX IF NOT EXISTS idx_parent   ON tasks(parent);