diff --git a/src/config.rs b/src/config.rs index aed1244b..951fd41a 100644 --- a/src/config.rs +++ b/src/config.rs @@ -327,7 +327,7 @@ impl Display for DatabaseBackend { #[serde(deny_unknown_fields)] pub(crate) struct DatabaseConfig { pub(crate) backend: DatabaseBackend, - pub(crate) path: String, + pub(crate) path: PathBuf, #[serde(default = "default_db_cache_capacity_mb")] pub(crate) cache_capacity_mb: f64, #[cfg(feature = "rocksdb")] diff --git a/src/database.rs b/src/database.rs index acfcda2b..f7cb1352 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, }; @@ -234,9 +233,9 @@ pub(crate) struct KeyValueDatabase { impl KeyValueDatabase { fn check_db_setup(config: &Config) -> Result<()> { - let path = Path::new(&config.database.path); - - let sqlite_exists = path + let sqlite_exists = config + .database + .path .join(format!( "{}.db", if config.conduit_compat { @@ -246,7 +245,7 @@ impl KeyValueDatabase { } )) .exists(); - let rocksdb_exists = path.join("IDENTITY").exists(); + let rocksdb_exists = config.database.path.join("IDENTITY").exists(); let mut count = 0; @@ -298,7 +297,7 @@ impl KeyValueDatabase { pub(crate) fn load_or_create(config: &Config) -> Result { Self::check_db_setup(config)?; - if !Path::new(&config.database.path).exists() { + if !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 \ diff --git a/src/database/abstraction/sqlite.rs b/src/database/abstraction/sqlite.rs index 7b41fc79..402e8621 100644 --- a/src/database/abstraction/sqlite.rs +++ b/src/database/abstraction/sqlite.rs @@ -110,7 +110,7 @@ impl Engine { impl KeyValueDatabaseEngine for Arc { fn open(config: &Config) -> Result { - let path = Path::new(&config.database.path).join(format!( + let path = config.database.path.join(format!( "{}.db", if config.conduit_compat { "conduit"