Before moving to connection pooling for the DB

This commit is contained in:
rzuasti
2026-02-17 14:10:39 -05:00
parent 7d63859222
commit f1093078bd
4 changed files with 31 additions and 0 deletions
+1
View File
@@ -12,6 +12,7 @@ serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0" serde_json = "1.0"
rusqlite = { version = "0.38.0", features = ["bundled", "chrono"] } rusqlite = { version = "0.38.0", features = ["bundled", "chrono"] }
rusqlite_migration = { version = "2.4.0", features = ["from-directory"] } rusqlite_migration = { version = "2.4.0", features = ["from-directory"] }
rusqlite_pool = "0.2.0"
include_dir = "0.7.4" include_dir = "0.7.4"
chrono = {version = "0.4.43", features = ["serde"]} chrono = {version = "0.4.43", features = ["serde"]}
pushover = "0.4.0" pushover = "0.4.0"
View File
+29
View File
@@ -0,0 +1,29 @@
use include_dir::{Dir, include_dir};
use log::{debug, error};
use rusqlite::Connection;
use rusqlite_migration::Migrations;
use std::result::Result;
use std::sync::LazyLock;
use tokio::sync::Mutex;
use crate::settings;
static TEST_MIGRATIONS_DIR: Dir = include_dir!("$CARGO_MANIFEST_DIR/tests/database_migrations");
// Define migrations. These are applied atomically.
static TEST_MIGRATIONS: LazyLock<Migrations<'static>> =
LazyLock::new(|| Migrations::from_directory(&TEST_MIGRATIONS_DIR).unwrap());
static INITIALISED: Mutex<bool> = Mutex::const_new(false);
pub async fn setup_database() {
let mut initialised = INITIALISED.lock().await;
if *initialised {
return;
}
let conn = db::init_db().unwrap();
TEST_MIGRATIONS.to_latest(&mut conn).unwrap();
*initialised = true;
}
@@ -0,0 +1 @@
INSERT INTO NOTIFICATIONS (id, created_on, notification_type, title, body, is_new) VALUES (1, '2026-01-03 14:13:12', 'NewDeviceFound', 'Title new device found', 'Body new device found', 1);