mirror of
https://github.com/PR0M3TH3AN/TORCH.git
synced 2026-10-27 16:01:54 +00:00
47 lines
2.0 KiB
SQL
47 lines
2.0 KiB
SQL
CREATE TABLE IF NOT EXISTS memories (
|
|
id UUID PRIMARY KEY,
|
|
schema_version INTEGER NOT NULL DEFAULT 1,
|
|
agent_id TEXT NOT NULL,
|
|
session_id TEXT NOT NULL,
|
|
type TEXT NOT NULL,
|
|
summary TEXT NOT NULL DEFAULT '',
|
|
content JSONB NOT NULL,
|
|
tags TEXT[] NOT NULL DEFAULT '{}',
|
|
importance DOUBLE PRECISION NOT NULL DEFAULT 0.5,
|
|
embedding_id TEXT,
|
|
source JSONB NOT NULL DEFAULT '{}'::jsonb,
|
|
created_at BIGINT NOT NULL,
|
|
last_seen BIGINT NOT NULL,
|
|
ttl_days INTEGER,
|
|
merged_into UUID REFERENCES memories(id) ON DELETE SET NULL,
|
|
pinned BOOLEAN NOT NULL DEFAULT FALSE,
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS memory_links (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
from_memory_id UUID NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
|
|
to_memory_id UUID NOT NULL REFERENCES memories(id) ON DELETE CASCADE,
|
|
relation_type TEXT NOT NULL DEFAULT 'merged_into',
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
UNIQUE (from_memory_id, to_memory_id, relation_type)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS memory_admin_flags (
|
|
memory_id UUID PRIMARY KEY REFERENCES memories(id) ON DELETE CASCADE,
|
|
pinned BOOLEAN NOT NULL DEFAULT FALSE,
|
|
pinned_at TIMESTAMPTZ,
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_memories_agent_id ON memories (agent_id);
|
|
CREATE INDEX IF NOT EXISTS idx_memories_created_at ON memories (created_at DESC);
|
|
CREATE INDEX IF NOT EXISTS idx_memories_last_seen ON memories (last_seen DESC);
|
|
CREATE INDEX IF NOT EXISTS idx_memories_importance ON memories (importance DESC);
|
|
CREATE INDEX IF NOT EXISTS idx_memories_tags_gin ON memories USING GIN (tags);
|
|
CREATE INDEX IF NOT EXISTS idx_memories_pinned ON memories (pinned);
|
|
CREATE INDEX IF NOT EXISTS idx_memories_merged_into ON memories (merged_into);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_memory_links_relation ON memory_links (relation_type, from_memory_id, to_memory_id);
|
|
CREATE INDEX IF NOT EXISTS idx_memory_admin_flags_pinned ON memory_admin_flags (pinned);
|