43 lines
1.0 KiB
SQL
43 lines
1.0 KiB
SQL
CREATE TABLE IF NOT EXISTS users (
|
|
login TEXT PRIMARY KEY,
|
|
display_name TEXT NOT NULL,
|
|
git_name TEXT NOT NULL DEFAULT '',
|
|
git_email TEXT NOT NULL DEFAULT '',
|
|
created_at TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS projects (
|
|
id TEXT PRIMARY KEY,
|
|
name TEXT NOT NULL UNIQUE,
|
|
repo_path TEXT NOT NULL UNIQUE,
|
|
default_branch TEXT NOT NULL,
|
|
remote TEXT NOT NULL,
|
|
created_by TEXT NOT NULL REFERENCES users(login),
|
|
created_at TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
id TEXT PRIMARY KEY,
|
|
project_id TEXT NOT NULL REFERENCES projects(id),
|
|
title TEXT NOT NULL,
|
|
branch TEXT NOT NULL,
|
|
worktree_path TEXT NOT NULL,
|
|
base_ref TEXT NOT NULL,
|
|
status TEXT NOT NULL,
|
|
created_by TEXT NOT NULL REFERENCES users(login),
|
|
created_at TEXT NOT NULL,
|
|
completed_at TEXT
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS tasks_project ON tasks(project_id, created_at);
|
|
|
|
CREATE TABLE IF NOT EXISTS events (
|
|
seq INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
kind TEXT NOT NULL,
|
|
project_id TEXT,
|
|
task_id TEXT,
|
|
actor TEXT NOT NULL,
|
|
payload TEXT NOT NULL,
|
|
created_at TEXT NOT NULL
|
|
);
|