31 lines
1.8 KiB
SQL
31 lines
1.8 KiB
SQL
CREATE TABLE IF NOT EXISTS native_graph_records (
|
|||
|
|
tenant_id BIGINT NOT NULL,
|
||
|
|
knowledge_base_id VARCHAR(36) NOT NULL,
|
||
|
|
source_table TEXT NOT NULL,
|
||
|
|
legacy_id BIGINT NOT NULL,
|
||
|
|
graph_version_id BIGINT NOT NULL,
|
||
|
|
payload JSONB NOT NULL,
|
||
|
|
source_snapshot_sha256 VARCHAR(64) NOT NULL,
|
||
|
|
imported_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||
|
|
PRIMARY KEY (tenant_id, source_table, legacy_id)
|
||
|
|
);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_native_graph_scope ON native_graph_records(tenant_id, knowledge_base_id, source_table, legacy_id);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_native_graph_evidence_subject ON native_graph_records(tenant_id, knowledge_base_id, (payload->>'subject_type'), (payload->>'subject_id')) WHERE source_table = 'knowledgegraphevidence';
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_native_graph_relation_from ON native_graph_records(tenant_id, knowledge_base_id, (payload->>'from_entity_id')) WHERE source_table = 'knowledgerelation';
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_native_graph_relation_to ON native_graph_records(tenant_id, knowledge_base_id, (payload->>'to_entity_id')) WHERE source_table = 'knowledgerelation';
|
||
|
|
CREATE TABLE IF NOT EXISTS native_graph_sources (
|
||
|
|
tenant_id BIGINT NOT NULL,
|
||
|
|
knowledge_base_id VARCHAR(36) NOT NULL,
|
||
|
|
source_chunk_id TEXT NOT NULL,
|
||
|
|
source_file TEXT NOT NULL,
|
||
|
|
source_content_hash TEXT NOT NULL,
|
||
|
|
excerpt TEXT NOT NULL,
|
||
|
|
native_knowledge_id VARCHAR(36),
|
||
|
|
native_chunk_id VARCHAR(36),
|
||
|
|
native_content_sha256 VARCHAR(64),
|
||
|
|
mapping_state TEXT NOT NULL DEFAULT 'unmapped',
|
||
|
|
PRIMARY KEY (tenant_id, knowledge_base_id, source_chunk_id)
|
||
|
|
);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_native_graph_sources_native ON native_graph_sources(tenant_id, native_chunk_id) WHERE native_chunk_id IS NOT NULL;
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_native_graph_sources_scope ON native_graph_sources(tenant_id, knowledge_base_id, native_chunk_id);
|