memory_core/store/
schema.rs1use rusqlite_migration::{M, Migrations};
2
3use crate::Error;
4
5pub fn migrations() -> Migrations<'static> {
6 Migrations::new(vec![
7 M::up(include_str!("migrations/001_initial.sql")),
8 M::up(include_str!("migrations/002_metrics.sql")),
9 M::up(include_str!("migrations/003_relations.sql")),
10 M::up(include_str!("migrations/004_cascade_fks.sql")),
11 M::up(include_str!("migrations/005_cleanup_orphans.sql")),
12 M::up(include_str!("migrations/006_activity_tokens.sql")),
13 M::up(include_str!("migrations/007_fix_fts_update_trigger.sql")),
14 M::up(include_str!("migrations/008_supersedes_index.sql")),
15 ])
16}
17
18pub const SCHEMA_VERSION: i64 = 8;
19
20pub fn check_version(conn: &rusqlite::Connection) -> crate::Result<()> {
21 let current: i64 = conn.pragma_query_value(None, "user_version", |r| r.get(0))?;
22 if current > SCHEMA_VERSION {
23 return Err(Error::SchemaVersionTooNew {
24 found: current,
25 supported: SCHEMA_VERSION,
26 });
27 }
28 Ok(())
29}