diff --git a/src/db.rs b/src/db.rs index 54e0211..6f8f961 100644 --- a/src/db.rs +++ b/src/db.rs @@ -364,6 +364,9 @@ pub async fn db_writer( /// Persist an event to the database, returning rows added. pub fn write_event(conn: &mut PooledConnection, e: &Event) -> Result { + // enable auto vacuum + conn.execute_batch("pragma auto_vacuum = FULL")?; + // start transaction let tx = conn.transaction()?; // get relevant fields from event and convert to blobs. diff --git a/src/schema.rs b/src/schema.rs index ced6ec1..5835ebb 100644 --- a/src/schema.rs +++ b/src/schema.rs @@ -14,7 +14,6 @@ use tracing::{debug, error, info}; /// Startup DB Pragmas pub const STARTUP_SQL: &str = r##" PRAGMA main.synchronous = NORMAL; -PRAGMA auto_vacuum = FULL; PRAGMA foreign_keys = ON; PRAGMA journal_size_limit = 32768; pragma mmap_size = 17179869184; -- cap mmap at 16GB @@ -28,7 +27,7 @@ const INIT_SQL: &str = formatcp!( r##" -- Database settings PRAGMA encoding = "UTF-8"; -PRAGMA journal_mode=WAL; +PRAGMA journal_mode = WAL; PRAGMA auto_vacuum = FULL; PRAGMA main.synchronous=NORMAL; PRAGMA foreign_keys = ON;