Spaces:
Sleeping
Sleeping
File size: 2,542 Bytes
6910834 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | -- ββ migrations.sql βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-- Idempotent schema additions for human-in-the-loop feedback + richer query
-- logging. Safe to re-run; uses IF NOT EXISTS / ADD COLUMN IF NOT EXISTS.
--
-- Run via: python -m database.migrate
-- ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
-- ββ Enrich query_logs βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ALTER TABLE query_logs ADD COLUMN IF NOT EXISTS session_id TEXT;
ALTER TABLE query_logs ADD COLUMN IF NOT EXISTS retrieved_docs JSONB;
ALTER TABLE query_logs ADD COLUMN IF NOT EXISTS source_titles JSONB;
ALTER TABLE query_logs ADD COLUMN IF NOT EXISTS source_urls JSONB;
ALTER TABLE query_logs ADD COLUMN IF NOT EXISTS parent_query_id BIGINT
REFERENCES query_logs(id) ON DELETE SET NULL;
CREATE INDEX IF NOT EXISTS idx_query_logs_session
ON query_logs (session_id);
CREATE INDEX IF NOT EXISTS idx_query_logs_parent
ON query_logs (parent_query_id);
CREATE INDEX IF NOT EXISTS idx_query_logs_queried_at
ON query_logs (queried_at DESC);
-- ββ New table: feedback βββββββββββββββββββββββββββββββββββββββββββββββββββββ
CREATE TABLE IF NOT EXISTS feedback (
id BIGSERIAL PRIMARY KEY,
query_id BIGINT REFERENCES query_logs(id) ON DELETE CASCADE,
ark_id TEXT, -- empty for "missing"
signal TEXT NOT NULL CHECK (signal IN ('up', 'down', 'missing')),
comment TEXT,
session_id TEXT,
raw_query TEXT, -- denormalized for fast lookup
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
CREATE INDEX IF NOT EXISTS idx_feedback_query ON feedback (query_id);
CREATE INDEX IF NOT EXISTS idx_feedback_session ON feedback (session_id);
CREATE INDEX IF NOT EXISTS idx_feedback_signal ON feedback (signal);
CREATE INDEX IF NOT EXISTS idx_feedback_ark ON feedback (ark_id);
CREATE INDEX IF NOT EXISTS idx_feedback_created ON feedback (created_at DESC);
|