From 3dd0f2c9c6649be8cf5aa91de0e35932b9d340e2 Mon Sep 17 00:00:00 2001 From: Greg Heartsfield Date: Tue, 3 Jan 2023 17:32:55 -0600 Subject: [PATCH] fix: do not run auto_vacuum on read-only connections --- src/db.rs | 3 +++ src/schema.rs | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) 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;