feat: schema v2 migration, database performance, batch query methods
- Add provenance column on edges for tracking how edges were created - Add project_metadata table for version/provenance tracking - Make unresolved_refs file_path/language NOT NULL with defaults - Add composite indexes for unresolved_refs and edges.provenance - Update v2 migration to handle all new schema additions - Record schema version on initialize to prevent re-migration - Add dynamic prepared statement cache (getDynamicStmt) for varying SQL - Add batch methods: getNodesByIds, getNodesByKinds, getFileHashMap, getFileSyncMap - Add project metadata methods: getMetadata, setMetadata, getAllMetadata - Optimize getStats to use single aggregate query - Optimize getStaleFiles to use temporary table JOIN - Add provenance parameter to getOutgoingEdges - Add intent field to SearchOptions type
This commit is contained in:
+11
-3
@@ -29,11 +29,19 @@ interface Migration {
|
||||
const migrations: Migration[] = [
|
||||
{
|
||||
version: 2,
|
||||
description: 'Add filePath and language to unresolved_refs for performance',
|
||||
description: 'Add project metadata, provenance tracking, and unresolved ref context',
|
||||
up: (db) => {
|
||||
db.exec(`
|
||||
ALTER TABLE unresolved_refs ADD COLUMN file_path TEXT;
|
||||
ALTER TABLE unresolved_refs ADD COLUMN language TEXT;
|
||||
CREATE TABLE IF NOT EXISTS project_metadata (
|
||||
key TEXT PRIMARY KEY,
|
||||
value TEXT NOT NULL,
|
||||
updated_at INTEGER NOT NULL
|
||||
);
|
||||
ALTER TABLE unresolved_refs ADD COLUMN file_path TEXT NOT NULL DEFAULT '';
|
||||
ALTER TABLE unresolved_refs ADD COLUMN language TEXT NOT NULL DEFAULT 'unknown';
|
||||
ALTER TABLE edges ADD COLUMN provenance TEXT DEFAULT NULL;
|
||||
CREATE INDEX IF NOT EXISTS idx_unresolved_file_path ON unresolved_refs(file_path);
|
||||
CREATE INDEX IF NOT EXISTS idx_edges_provenance ON edges(provenance);
|
||||
`);
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user