70 lines
1.7 KiB
SQL
70 lines
1.7 KiB
SQL
-- muse.db 初版:运行、事件、人审、卡片与向量 blob。
|
|
PRAGMA foreign_keys=ON;
|
|
|
|
CREATE TABLE IF NOT EXISTS schema_migrations (
|
|
version TEXT PRIMARY KEY,
|
|
applied_at TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS runs (
|
|
id TEXT PRIMARY KEY,
|
|
created_at TEXT NOT NULL,
|
|
kind TEXT NOT NULL,
|
|
input_json TEXT NOT NULL,
|
|
output_text TEXT NOT NULL,
|
|
meta_json TEXT NOT NULL,
|
|
skill_set_hash TEXT NOT NULL,
|
|
baseline_hash TEXT
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS events (
|
|
run_id TEXT NOT NULL,
|
|
seq INTEGER NOT NULL,
|
|
kind TEXT NOT NULL,
|
|
role TEXT,
|
|
tool_name TEXT,
|
|
payload_json TEXT NOT NULL,
|
|
created_at TEXT NOT NULL,
|
|
PRIMARY KEY (run_id, seq),
|
|
FOREIGN KEY (run_id) REFERENCES runs(id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS reviews (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
run_id TEXT NOT NULL,
|
|
target TEXT NOT NULL,
|
|
action TEXT NOT NULL,
|
|
reviewer TEXT NOT NULL,
|
|
reason TEXT,
|
|
created_at TEXT NOT NULL,
|
|
FOREIGN KEY (run_id) REFERENCES runs(id),
|
|
CHECK (action IN ('adopt', 'reject', 'revise')),
|
|
CHECK (target IN ('candidate', 'lesson', 'chapter')),
|
|
CHECK (length(reviewer) > 0)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS revisions (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
review_id INTEGER NOT NULL,
|
|
kind TEXT NOT NULL,
|
|
before_text TEXT NOT NULL,
|
|
after_text TEXT NOT NULL,
|
|
created_at TEXT NOT NULL,
|
|
FOREIGN KEY (review_id) REFERENCES reviews(id)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS cards (
|
|
id TEXT PRIMARY KEY,
|
|
kind TEXT NOT NULL,
|
|
title TEXT,
|
|
payload_json TEXT NOT NULL,
|
|
embedding BLOB,
|
|
work_id INTEGER,
|
|
source_path TEXT,
|
|
content_hash TEXT,
|
|
created_at TEXT NOT NULL
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_cards_kind ON cards(kind);
|
|
CREATE INDEX IF NOT EXISTS idx_events_run ON events(run_id);
|