aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cats-radio-node.db0
-rw-r--r--src/db.rs14
2 files changed, 14 insertions, 0 deletions
diff --git a/cats-radio-node.db b/cats-radio-node.db
deleted file mode 100644
index e69de29..0000000
--- a/cats-radio-node.db
+++ /dev/null
diff --git a/src/db.rs b/src/db.rs
index 5d0f627..d5285ba 100644
--- a/src/db.rs
+++ b/src/db.rs
@@ -1,4 +1,5 @@
use std::time::{SystemTime, UNIX_EPOCH};
+use std::io;
use log::debug;
use sqlx::SqlitePool;
@@ -18,6 +19,19 @@ pub struct Packet {
impl Database {
pub async fn new() -> Self {
+ {
+ // Ensure the database file exists
+ match std::fs::OpenOptions::new().write(true)
+ .create_new(true)
+ .open("cats-radio-node.db") {
+ Ok(_f) => (),
+ Err(e) if e.kind() == io::ErrorKind::AlreadyExists => (),
+ Err(e) => {
+ panic!("Failed to ensure DB exists: {e}");
+ },
+ }
+ }
+
let pool = SqlitePool::connect("sqlite:cats-radio-node.db").await.unwrap();
let mut conn = pool.acquire().await.unwrap();