feat(db): Add migration 010 for chunk config tracking columns
Add chunk_max_bytes and chunk_count columns to embedding_metadata to support config drift detection and adaptive dedup sizing. Includes a partial index on sentinel rows (chunk_index=0) to accelerate the drift detection and max-chunk queries. Also exports LATEST_SCHEMA_VERSION as a public constant derived from the MIGRATIONS array length, replacing the previously hardcoded magic number in the health check. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
14
migrations/010_chunk_config.sql
Normal file
14
migrations/010_chunk_config.sql
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
-- Migration 010: Chunk config tracking + adaptive dedup support
|
||||||
|
-- Schema version: 10
|
||||||
|
|
||||||
|
ALTER TABLE embedding_metadata ADD COLUMN chunk_max_bytes INTEGER;
|
||||||
|
ALTER TABLE embedding_metadata ADD COLUMN chunk_count INTEGER;
|
||||||
|
|
||||||
|
-- Partial index: accelerates drift detection and adaptive dedup queries on sentinel rows
|
||||||
|
CREATE INDEX idx_embedding_metadata_sentinel
|
||||||
|
ON embedding_metadata(document_id, chunk_index)
|
||||||
|
WHERE chunk_index = 0;
|
||||||
|
|
||||||
|
INSERT INTO schema_version (version, applied_at, description)
|
||||||
|
VALUES (10, strftime('%s', 'now') * 1000,
|
||||||
|
'Add chunk_max_bytes and chunk_count to embedding_metadata');
|
||||||
@@ -10,6 +10,10 @@ use tracing::{debug, info};
|
|||||||
|
|
||||||
use super::error::{LoreError, Result};
|
use super::error::{LoreError, Result};
|
||||||
|
|
||||||
|
/// Latest schema version, derived from the embedded migrations count.
|
||||||
|
/// Used by the health check to verify databases are up-to-date.
|
||||||
|
pub const LATEST_SCHEMA_VERSION: i32 = MIGRATIONS.len() as i32;
|
||||||
|
|
||||||
/// Embedded migrations - compiled into the binary.
|
/// Embedded migrations - compiled into the binary.
|
||||||
const MIGRATIONS: &[(&str, &str)] = &[
|
const MIGRATIONS: &[(&str, &str)] = &[
|
||||||
("001", include_str!("../../migrations/001_initial.sql")),
|
("001", include_str!("../../migrations/001_initial.sql")),
|
||||||
@@ -39,6 +43,10 @@ const MIGRATIONS: &[(&str, &str)] = &[
|
|||||||
"009",
|
"009",
|
||||||
include_str!("../../migrations/009_embeddings.sql"),
|
include_str!("../../migrations/009_embeddings.sql"),
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
"010",
|
||||||
|
include_str!("../../migrations/010_chunk_config.sql"),
|
||||||
|
),
|
||||||
];
|
];
|
||||||
|
|
||||||
/// Create a database connection with production-grade pragmas.
|
/// Create a database connection with production-grade pragmas.
|
||||||
|
|||||||
Reference in New Issue
Block a user