HackmanCMS/sql/005_milestone5.sql
2026-05-03 20:56:15 +03:00

44 lines
1.6 KiB
SQL

CREATE TABLE IF NOT EXISTS recent_files (
id INTEGER PRIMARY KEY AUTOINCREMENT,
project_id INTEGER NOT NULL REFERENCES projects(id),
path TEXT NOT NULL,
opened_at DATETIME DEFAULT CURRENT_TIMESTAMP,
UNIQUE(project_id, path)
);
CREATE INDEX IF NOT EXISTS idx_recent_files_project ON recent_files(project_id, opened_at DESC);
CREATE TABLE IF NOT EXISTS scheduled_builds (
id INTEGER PRIMARY KEY AUTOINCREMENT,
project_id INTEGER NOT NULL REFERENCES projects(id),
cmd_id TEXT NOT NULL,
cron TEXT NOT NULL,
is_enabled INTEGER NOT NULL DEFAULT 1,
last_run_at DATETIME,
last_status TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX IF NOT EXISTS idx_scheduled_builds_project ON scheduled_builds(project_id);
CREATE TABLE IF NOT EXISTS link_check_runs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
project_id INTEGER NOT NULL REFERENCES projects(id),
started_at DATETIME DEFAULT CURRENT_TIMESTAMP,
finished_at DATETIME,
total_links INTEGER DEFAULT 0,
broken INTEGER DEFAULT 0
);
CREATE TABLE IF NOT EXISTS link_check_results (
id INTEGER PRIMARY KEY AUTOINCREMENT,
run_id INTEGER NOT NULL REFERENCES link_check_runs(id) ON DELETE CASCADE,
project_id INTEGER NOT NULL REFERENCES projects(id),
url TEXT NOT NULL,
source TEXT NOT NULL,
status_code INTEGER,
error TEXT,
checked_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX IF NOT EXISTS idx_link_results_run ON link_check_results(run_id);