refactor: rename memory_entity→knowledge_node, knowledge graph edge→knowledge_edge
CI / CI (pull_request) Failing after 11m15s
CI / CI (pull_request) Failing after 11m15s
Resolves table name collision between: - memory_edge (provenance DAG: child_sha/parent_sha) — KEPT - knowledge_edge (knowledge graph: source_id/target_id) — NEW NAME Changes: - memory_entity → knowledge_node (all .rs + migrations 003-009) - knowledge graph memory_edge → knowledge_edge - memory_entity_version → knowledge_node_version - memory_edge_version → knowledge_edge_version - Added knowledge_node + knowledge_edge to init_schema() - Converted versioning.rs from sqlx::query_as! to runtime queries (avoids stale sqlx offline cache dependency) - Fixed UUID cast: $1::UUID for String→UUID column binds - Fixed column names: source_entity_id→source_id, target_entity_id→target_id Production DB: knowledge_node + knowledge_edge tables created, memory_entity VIEW points to knowledge_node for backward compat.
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
BEGIN;
|
||||
|
||||
-- Entity version snapshots (immutable)
|
||||
CREATE TABLE IF NOT EXISTS memory_entity_version (
|
||||
CREATE TABLE IF NOT EXISTS knowledge_node_version (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
entity_id VARCHAR(255) NOT NULL,
|
||||
version_num INTEGER NOT NULL,
|
||||
@@ -28,7 +28,7 @@ CREATE TABLE IF NOT EXISTS memory_entity_version (
|
||||
);
|
||||
|
||||
-- Edge version snapshots
|
||||
CREATE TABLE IF NOT EXISTS memory_edge_version (
|
||||
CREATE TABLE IF NOT EXISTS knowledge_edge_version (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
edge_id UUID NOT NULL,
|
||||
version_num INTEGER NOT NULL,
|
||||
@@ -52,22 +52,22 @@ CREATE TABLE IF NOT EXISTS memory_edge_version (
|
||||
|
||||
-- Indexes for efficient lookups
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_entity_version_entity_id
|
||||
ON memory_entity_version(entity_id, version_num DESC);
|
||||
ON knowledge_node_version(entity_id, version_num DESC);
|
||||
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_entity_version_changed_at
|
||||
ON memory_entity_version(changed_at DESC);
|
||||
ON knowledge_node_version(changed_at DESC);
|
||||
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_entity_version_changed_by
|
||||
ON memory_entity_version(changed_by);
|
||||
ON knowledge_node_version(changed_by);
|
||||
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_edge_version_edge_id
|
||||
ON memory_edge_version(edge_id, version_num DESC);
|
||||
ON knowledge_edge_version(edge_id, version_num DESC);
|
||||
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_edge_version_changed_at
|
||||
ON memory_edge_version(changed_at DESC);
|
||||
ON knowledge_edge_version(changed_at DESC);
|
||||
|
||||
CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_edge_version_changed_by
|
||||
ON memory_edge_version(changed_by);
|
||||
ON knowledge_edge_version(changed_by);
|
||||
|
||||
-- Immutability enforcement: version tables are append-only
|
||||
CREATE OR REPLACE FUNCTION prevent_version_table_modification()
|
||||
@@ -77,19 +77,19 @@ BEGIN
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
CREATE TRIGGER memory_entity_version_immutable
|
||||
BEFORE UPDATE OR DELETE ON memory_entity_version
|
||||
CREATE TRIGGER knowledge_node_version_immutable
|
||||
BEFORE UPDATE OR DELETE ON knowledge_node_version
|
||||
FOR EACH ROW EXECUTE FUNCTION prevent_version_table_modification();
|
||||
|
||||
CREATE TRIGGER memory_edge_version_immutable
|
||||
BEFORE UPDATE OR DELETE ON memory_edge_version
|
||||
CREATE TRIGGER knowledge_edge_version_immutable
|
||||
BEFORE UPDATE OR DELETE ON knowledge_edge_version
|
||||
FOR EACH ROW EXECUTE FUNCTION prevent_version_table_modification();
|
||||
|
||||
COMMIT;
|
||||
|
||||
-- Rollback (for reference):
|
||||
-- DROP TRIGGER memory_entity_version_immutable ON memory_entity_version;
|
||||
-- DROP TRIGGER memory_edge_version_immutable ON memory_edge_version;
|
||||
-- DROP TRIGGER knowledge_node_version_immutable ON knowledge_node_version;
|
||||
-- DROP TRIGGER knowledge_edge_version_immutable ON knowledge_edge_version;
|
||||
-- DROP FUNCTION prevent_version_table_modification();
|
||||
-- DROP TABLE memory_entity_version;
|
||||
-- DROP TABLE memory_edge_version;
|
||||
-- DROP TABLE knowledge_node_version;
|
||||
-- DROP TABLE knowledge_edge_version;
|
||||
|
||||
Reference in New Issue
Block a user