diff --git a/src/database.rs b/src/database.rs index 2ce6eb7f..81abfddd 100644 --- a/src/database.rs +++ b/src/database.rs @@ -3,7 +3,6 @@ use std::{ fs, io::Write, mem::size_of, - path::Path, sync::Arc, }; @@ -241,16 +240,6 @@ impl KeyValueDatabase { "Compiled without support for any databases", )); - if !Path::new(&config.database.path).exists() { - fs::create_dir_all(&config.database.path).map_err(|_| { - Error::BadConfig( - "Database folder doesn't exists and couldn't be created \ - (e.g. due to missing permissions). Please create the \ - database folder yourself.", - ) - })?; - } - let x: Arc = match config.database.backend { #[cfg(feature = "sqlite")] DatabaseBackend::Sqlite => { diff --git a/src/database/abstraction/sqlite.rs b/src/database/abstraction/sqlite.rs index 943c553d..af24311f 100644 --- a/src/database/abstraction/sqlite.rs +++ b/src/database/abstraction/sqlite.rs @@ -1,5 +1,6 @@ use std::{ cell::RefCell, + fs, future::Future, path::{Path, PathBuf}, pin::Pin, @@ -67,6 +68,8 @@ pub(crate) struct Engine { impl Engine { pub(crate) fn open(config: &Config) -> Result { + fs::create_dir_all(&config.database.path)?; + let path = Path::new(&config.database.path).join("sqlite.db"); // calculates cache-size per permanent connection