Files
trueref/trueref-adapters/src/main/resources/db/migration/V1__init_schema.sql
moze c5f950c2c0
Some checks failed
Build and publish Docker image / Build and push (push) Failing after 1m27s
Initial commit: trueref v0.1.0-SNAPSHOT
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).
2026-05-06 00:49:16 +02:00

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);