feat: add context_facts, context_documents, context_chunks tables to schema
This commit is contained in:
parent
0aafc36b45
commit
bae889ddf2
3 changed files with 53 additions and 0 deletions
|
|
@ -62,6 +62,35 @@ CREATE TABLE IF NOT EXISTS received_bundles (
|
|||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_bundles_bundled ON received_bundles(bundled_at);
|
||||
CREATE INDEX IF NOT EXISTS idx_bundles_type ON received_bundles(issue_type);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS context_facts (
|
||||
id TEXT PRIMARY KEY,
|
||||
category TEXT NOT NULL,
|
||||
key TEXT NOT NULL,
|
||||
value TEXT NOT NULL,
|
||||
source TEXT,
|
||||
created_at TEXT NOT NULL
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_facts_category ON context_facts(category);
|
||||
CREATE INDEX IF NOT EXISTS idx_facts_key ON context_facts(key);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS context_documents (
|
||||
id TEXT PRIMARY KEY,
|
||||
filename TEXT NOT NULL,
|
||||
doc_type TEXT NOT NULL,
|
||||
full_text TEXT NOT NULL,
|
||||
file_size INTEGER,
|
||||
uploaded_at TEXT NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS context_chunks (
|
||||
id TEXT PRIMARY KEY,
|
||||
document_id TEXT NOT NULL REFERENCES context_documents(id) ON DELETE CASCADE,
|
||||
chunk_index INTEGER NOT NULL,
|
||||
text TEXT NOT NULL,
|
||||
embedding BLOB
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS idx_chunks_doc ON context_chunks(document_id);
|
||||
"""
|
||||
|
||||
|
||||
|
|
|
|||
0
tests/context/__init__.py
Normal file
0
tests/context/__init__.py
Normal file
24
tests/context/test_schema.py
Normal file
24
tests/context/test_schema.py
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
"""Verify the three new context tables are created by ensure_schema."""
|
||||
import sqlite3
|
||||
from pathlib import Path
|
||||
import pytest
|
||||
from app.ingest.pipeline import ensure_schema
|
||||
|
||||
|
||||
def test_context_tables_created(tmp_path):
|
||||
db = tmp_path / "t.db"
|
||||
ensure_schema(db)
|
||||
conn = sqlite3.connect(str(db))
|
||||
tables = {r[0] for r in conn.execute(
|
||||
"SELECT name FROM sqlite_master WHERE type='table'"
|
||||
).fetchall()}
|
||||
conn.close()
|
||||
assert "context_facts" in tables
|
||||
assert "context_documents" in tables
|
||||
assert "context_chunks" in tables
|
||||
|
||||
|
||||
def test_context_schema_idempotent(tmp_path):
|
||||
db = tmp_path / "t.db"
|
||||
ensure_schema(db)
|
||||
ensure_schema(db) # second call must not raise
|
||||
Loading…
Reference in a new issue