| 
									
										
										
										
											2025-03-08 22:03:30 +00:00
										 |  |  | -- Add tables for vector embeddings storage and management
 | 
					
						
							| 
									
										
										
										
											2025-03-08 23:01:45 +00:00
										 |  |  | -- This migration adds embedding support to the main document.db database
 | 
					
						
							| 
									
										
										
										
											2025-03-08 22:03:30 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | -- Store embeddings for notes
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS "note_embeddings" (
 | 
					
						
							|  |  |  |     "embedId" TEXT NOT NULL PRIMARY KEY,
 | 
					
						
							|  |  |  |     "noteId" TEXT NOT NULL,
 | 
					
						
							|  |  |  |     "providerId" TEXT NOT NULL,
 | 
					
						
							|  |  |  |     "modelId" TEXT NOT NULL,
 | 
					
						
							|  |  |  |     "dimension" INTEGER NOT NULL,
 | 
					
						
							|  |  |  |     "embedding" BLOB NOT NULL,
 | 
					
						
							|  |  |  |     "version" INTEGER NOT NULL DEFAULT 1,
 | 
					
						
							|  |  |  |     "dateCreated" TEXT NOT NULL,
 | 
					
						
							|  |  |  |     "utcDateCreated" TEXT NOT NULL,
 | 
					
						
							|  |  |  |     "dateModified" TEXT NOT NULL,
 | 
					
						
							|  |  |  |     "utcDateModified" TEXT NOT NULL
 | 
					
						
							|  |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | CREATE INDEX "IDX_note_embeddings_noteId" ON "note_embeddings" ("noteId");
 | 
					
						
							|  |  |  | CREATE INDEX "IDX_note_embeddings_providerId_modelId" ON "note_embeddings" ("providerId", "modelId");
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -- Table to track which notes need embedding updates
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS "embedding_queue" (
 | 
					
						
							|  |  |  |     "noteId" TEXT NOT NULL PRIMARY KEY,
 | 
					
						
							|  |  |  |     "operation" TEXT NOT NULL, -- CREATE, UPDATE, DELETE
 | 
					
						
							|  |  |  |     "dateQueued" TEXT NOT NULL,
 | 
					
						
							|  |  |  |     "utcDateQueued" TEXT NOT NULL,
 | 
					
						
							|  |  |  |     "priority" INTEGER NOT NULL DEFAULT 0,
 | 
					
						
							|  |  |  |     "attempts" INTEGER NOT NULL DEFAULT 0,
 | 
					
						
							|  |  |  |     "lastAttempt" TEXT NULL,
 | 
					
						
							| 
									
										
										
										
											2025-03-12 21:04:06 +00:00
										 |  |  |     "error" TEXT NULL,
 | 
					
						
							| 
									
										
										
										
											2025-03-16 20:36:47 +00:00
										 |  |  |     "failed" INTEGER NOT NULL DEFAULT 0,
 | 
					
						
							|  |  |  |     "isProcessing" INTEGER NOT NULL DEFAULT 0
 | 
					
						
							| 
									
										
										
										
											2025-03-08 22:03:30 +00:00
										 |  |  | );
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | -- Table to store embedding provider configurations
 | 
					
						
							|  |  |  | CREATE TABLE IF NOT EXISTS "embedding_providers" (
 | 
					
						
							|  |  |  |     "providerId" TEXT NOT NULL PRIMARY KEY,
 | 
					
						
							|  |  |  |     "name" TEXT NOT NULL,
 | 
					
						
							|  |  |  |     "priority" INTEGER NOT NULL DEFAULT 0,
 | 
					
						
							|  |  |  |     "config" TEXT NOT NULL, -- JSON config object
 | 
					
						
							|  |  |  |     "dateCreated" TEXT NOT NULL,
 | 
					
						
							|  |  |  |     "utcDateCreated" TEXT NOT NULL,
 | 
					
						
							|  |  |  |     "dateModified" TEXT NOT NULL,
 | 
					
						
							|  |  |  |     "utcDateModified" TEXT NOT NULL
 | 
					
						
							| 
									
										
										
										
											2025-03-16 18:35:31 +00:00
										 |  |  | );
 |