Intelex / backend /database /schema.sql
yakub
added url_ref and conv_type fixes
86be40b
Raw
History Blame Contribute Delete
1.86 kB
-- Schema for MultiSource-RAG
-- (Database creation is handled by the cloud provider)
CREATE TABLE IF NOT EXISTS sources (
id VARCHAR(36) PRIMARY KEY,
type VARCHAR(20) NOT NULL,
title VARCHAR(500) NOT NULL,
origin TEXT,
language VARCHAR(10) DEFAULT 'EN',
status VARCHAR(20) DEFAULT 'pending',
chunk_count INT DEFAULT 0,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS chunks (
id VARCHAR(36) PRIMARY KEY,
source_id VARCHAR(36),
chunk_index INT,
chunk_text TEXT,
chunk_type VARCHAR(20) DEFAULT 'text',
page_number INT DEFAULT NULL,
timestamp_s INT DEFAULT NULL,
unified_metadata JSON DEFAULT NULL,
url_ref TEXT DEFAULT NULL,
FOREIGN KEY (source_id) REFERENCES sources(id) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS chat_history (
id VARCHAR(36) PRIMARY KEY,
question TEXT NOT NULL,
answer TEXT NOT NULL,
sources_used JSON DEFAULT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
conversation_id VARCHAR(36) DEFAULT NULL
);
CREATE TABLE IF NOT EXISTS conversations (
id VARCHAR(36) PRIMARY KEY,
title VARCHAR(500) DEFAULT 'New Chat',
conv_type VARCHAR(20) DEFAULT 'general',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS image_jobs (
image_id VARCHAR(36) PRIMARY KEY,
source_id VARCHAR(36) NULL,
image_data LONGBLOB,
caption TEXT,
status VARCHAR(20) DEFAULT 'pending',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- Indexes for performance (Standard syntax)
CREATE INDEX idx_chunks_source ON chunks(source_id);
CREATE INDEX idx_chunks_type ON chunks(chunk_type);
CREATE INDEX idx_sources_type ON sources(type);
CREATE INDEX idx_chat_created ON chat_history(created_at);