From 79464d3bfb389261d92254c7fea505ff68e98c57 Mon Sep 17 00:00:00 2001 From: liyunze <50455574+liyunze-coding@users.noreply.github.com> Date: Tue, 6 Jan 2026 23:37:41 +0800 Subject: [PATCH] fixing database directory error --- src/database/database.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/database/database.rs b/src/database/database.rs index f01aa79..abb9cf1 100644 --- a/src/database/database.rs +++ b/src/database/database.rs @@ -1,4 +1,4 @@ -use std::{env, path::Path}; +use std::{env, fs, path::Path}; // Using SQLite use rusqlite::{Connection, OpenFlags, Result}; @@ -7,7 +7,14 @@ pub fn init_db() -> Result { let filename = env::var("DATABASE_PATH").unwrap_or_else(|_| "bot_data.sqlite".to_string()); let filepath = Path::new(&filename); - let open_flags = OpenFlags::default(); + if let Some(parent) = filepath.parent() { + if !parent.as_os_str().is_empty() { + fs::create_dir_all(parent).expect("Failed to create database directory"); + } + } + + let open_flags = + OpenFlags::default() | OpenFlags::SQLITE_OPEN_CREATE | OpenFlags::SQLITE_OPEN_READ_WRITE; Connection::open_with_flags(filepath, open_flags) }