Files
goaichat/internal/storage/migrations/001_initial.sql

37 lines
1.2 KiB
SQL

-- sessions table stores high-level chat session metadata.
CREATE TABLE IF NOT EXISTS sessions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
model_name TEXT NOT NULL,
summary TEXT
);
CREATE UNIQUE INDEX IF NOT EXISTS idx_sessions_name ON sessions(name);
-- messages table stores individual conversation messages linked to sessions.
CREATE TABLE IF NOT EXISTS messages (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id INTEGER NOT NULL,
role TEXT NOT NULL,
content TEXT NOT NULL,
token_count INTEGER,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY(session_id) REFERENCES sessions(id) ON DELETE CASCADE
);
CREATE INDEX IF NOT EXISTS idx_messages_session_created_at ON messages(session_id, created_at);
-- models table tracks available models and usage metadata.
CREATE TABLE IF NOT EXISTS models (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
display_name TEXT,
provider TEXT,
is_default BOOLEAN NOT NULL DEFAULT 0,
last_used_at DATETIME
);
CREATE UNIQUE INDEX IF NOT EXISTS idx_models_name ON models(name);