Some checks failed
Build and publish Docker image / Build and push (push) Failing after 1m27s
Java 21 / Spring Boot 3.5.3 multi-module Maven project. Hybrid BM25+HNSW search with RRF, cross-encoder reranker, ONNX Runtime 1.22.0 (CPU + CUDA 12 GPU variants).
68 lines
3.0 KiB
SQL
68 lines
3.0 KiB
SQL
-- trueref schema V1
|
|
-- All UUIDs stored as CHAR(36) for H2 portability.
|
|
|
|
CREATE TABLE repositories (
|
|
id CHAR(36) PRIMARY KEY,
|
|
name VARCHAR(512) NOT NULL UNIQUE,
|
|
remote_url VARCHAR(2048) NULL,
|
|
local_path VARCHAR(2048) NOT NULL,
|
|
managed_clone BOOLEAN NOT NULL,
|
|
ignore_globs CLOB NOT NULL, -- JSON array of strings
|
|
max_file_size_bytes BIGINT NOT NULL,
|
|
poll_interval_seconds BIGINT NOT NULL,
|
|
tag_cap INT NOT NULL,
|
|
version_mapping_rules CLOB NOT NULL, -- JSON array of TagPattern
|
|
created_at TIMESTAMP(9) WITH TIME ZONE NOT NULL,
|
|
updated_at TIMESTAMP(9) WITH TIME ZONE NOT NULL
|
|
);
|
|
|
|
CREATE TABLE versions (
|
|
id CHAR(36) PRIMARY KEY,
|
|
repo_id CHAR(36) NOT NULL REFERENCES repositories(id) ON DELETE CASCADE,
|
|
tag VARCHAR(512) NOT NULL,
|
|
commit_sha CHAR(40) NOT NULL,
|
|
status VARCHAR(32) NOT NULL,
|
|
indexed_at TIMESTAMP(9) WITH TIME ZONE NULL,
|
|
chunk_count INT NOT NULL DEFAULT 0,
|
|
error_message CLOB NULL,
|
|
UNIQUE (repo_id, tag)
|
|
);
|
|
CREATE INDEX idx_versions_repo_status ON versions(repo_id, status);
|
|
|
|
CREATE TABLE ingestion_jobs (
|
|
id CHAR(36) PRIMARY KEY,
|
|
repo_id CHAR(36) NOT NULL REFERENCES repositories(id) ON DELETE CASCADE,
|
|
version_id CHAR(36) NULL REFERENCES versions(id) ON DELETE CASCADE,
|
|
type VARCHAR(32) NOT NULL,
|
|
status VARCHAR(32) NOT NULL,
|
|
started_at TIMESTAMP(9) WITH TIME ZONE NULL,
|
|
finished_at TIMESTAMP(9) WITH TIME ZONE NULL,
|
|
created_at TIMESTAMP(9) WITH TIME ZONE NOT NULL
|
|
);
|
|
CREATE INDEX idx_jobs_repo_status ON ingestion_jobs(repo_id, status);
|
|
CREATE INDEX idx_jobs_status_created ON ingestion_jobs(status, created_at);
|
|
|
|
CREATE TABLE job_stages (
|
|
job_id CHAR(36) NOT NULL REFERENCES ingestion_jobs(id) ON DELETE CASCADE,
|
|
name VARCHAR(32) NOT NULL,
|
|
status VARCHAR(32) NOT NULL,
|
|
started_at TIMESTAMP(9) WITH TIME ZONE NULL,
|
|
finished_at TIMESTAMP(9) WITH TIME ZONE NULL,
|
|
items_processed BIGINT NOT NULL DEFAULT 0,
|
|
items_total BIGINT NOT NULL DEFAULT 0,
|
|
bytes_processed BIGINT NOT NULL DEFAULT 0,
|
|
error_message CLOB NULL,
|
|
PRIMARY KEY (job_id, name)
|
|
);
|
|
|
|
-- Persisted log buffer (last N per job kept by application logic; SSE streams from in-memory bus).
|
|
CREATE TABLE job_log_events (
|
|
id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
|
|
job_id CHAR(36) NOT NULL REFERENCES ingestion_jobs(id) ON DELETE CASCADE,
|
|
ts TIMESTAMP(9) WITH TIME ZONE NOT NULL,
|
|
level VARCHAR(8) NOT NULL,
|
|
stage VARCHAR(32),
|
|
message CLOB NOT NULL
|
|
);
|
|
CREATE INDEX idx_job_log_job_ts ON job_log_events(job_id, ts);
|