44 lines
1.2 KiB
Go
44 lines
1.2 KiB
Go
package db
|
|
|
|
var migrations = []string{
|
|
// Migration 1: Initial schema
|
|
`CREATE TABLE IF NOT EXISTS machines (
|
|
id TEXT PRIMARY KEY,
|
|
name TEXT NOT NULL,
|
|
api_key TEXT NOT NULL UNIQUE,
|
|
last_seen DATETIME,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS sessions (
|
|
id TEXT PRIMARY KEY,
|
|
machine_id TEXT REFERENCES machines(id),
|
|
name TEXT NOT NULL,
|
|
tmux_session TEXT NOT NULL,
|
|
project_path TEXT NOT NULL,
|
|
claude_session_id TEXT,
|
|
status TEXT DEFAULT 'starting',
|
|
is_worktree BOOLEAN DEFAULT FALSE,
|
|
worktree_branch TEXT,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
ended_at DATETIME,
|
|
UNIQUE(machine_id, name)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS events (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
session_id TEXT REFERENCES sessions(id),
|
|
event_name TEXT NOT NULL,
|
|
tool_name TEXT,
|
|
payload TEXT NOT NULL,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_events_session_id ON events(session_id);
|
|
CREATE INDEX IF NOT EXISTS idx_events_created_at ON events(created_at);
|
|
|
|
CREATE TABLE IF NOT EXISTS schema_migrations (
|
|
version INTEGER PRIMARY KEY,
|
|
applied_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
);`,
|
|
}
|