diff options
author | Alex Auvolat <alex@adnab.me> | 2022-09-08 15:49:17 +0200 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2022-09-08 15:49:17 +0200 |
commit | d9d199a6c9c0ae2a6ee2b04103c78ef1eb311956 (patch) | |
tree | 53429d4faa2e696dd798515e2db493bc78ba5e48 /src/model/garage.rs | |
parent | d23b3a14fc28de164080e762f0e97e6cbc868940 (diff) | |
parent | 03c40a0b24dd5bd2a51d3cd3df0ca1a42fb2d328 (diff) | |
download | garage-d9d199a6c9c0ae2a6ee2b04103c78ef1eb311956.tar.gz garage-d9d199a6c9c0ae2a6ee2b04103c78ef1eb311956.zip |
Merge branch 'main' into lx-perf-improvements
Diffstat (limited to 'src/model/garage.rs')
-rw-r--r-- | src/model/garage.rs | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/src/model/garage.rs b/src/model/garage.rs index c67f1fe0..66c359e7 100644 --- a/src/model/garage.rs +++ b/src/model/garage.rs @@ -80,6 +80,8 @@ impl Garage { let mut db_path = config.metadata_dir.clone(); std::fs::create_dir_all(&db_path).expect("Unable to create Garage meta data directory"); let db = match config.db_engine.as_str() { + // ---- Sled DB ---- + #[cfg(feature = "sled")] "sled" => { db_path.push("db"); info!("Opening Sled database at: {}", db_path.display()); @@ -91,6 +93,10 @@ impl Garage { .expect("Unable to open sled DB"); db::sled_adapter::SledDb::init(db) } + #[cfg(not(feature = "sled"))] + "sled" => return Err(Error::Message("sled db not available in this build".into())), + // ---- Sqlite DB ---- + #[cfg(feature = "sqlite")] "sqlite" | "sqlite3" | "rusqlite" => { db_path.push("db.sqlite"); info!("Opening Sqlite database at: {}", db_path.display()); @@ -98,6 +104,14 @@ impl Garage { .expect("Unable to open sqlite DB"); db::sqlite_adapter::SqliteDb::init(db) } + #[cfg(not(feature = "sqlite"))] + "sqlite" | "sqlite3" | "rusqlite" => { + return Err(Error::Message( + "sqlite db not available in this build".into(), + )) + } + // ---- LMDB DB ---- + #[cfg(feature = "lmdb")] "lmdb" | "heed" => { db_path.push("db.lmdb"); info!("Opening LMDB database at: {}", db_path.display()); @@ -116,10 +130,22 @@ impl Garage { let db = env_builder.open(&db_path).expect("Unable to open LMDB DB"); db::lmdb_adapter::LmdbDb::init(db) } + #[cfg(not(feature = "lmdb"))] + "lmdb" | "heed" => return Err(Error::Message("lmdb db not available in this build".into())), + // ---- Unavailable DB engine ---- e => { return Err(Error::Message(format!( - "Unsupported DB engine: {} (options: sled, sqlite, lmdb)", - e + "Unsupported DB engine: {} (options: {})", + e, + vec![ + #[cfg(feature = "sled")] + "sled", + #[cfg(feature = "sqlite")] + "sqlite", + #[cfg(feature = "lmdb")] + "lmdb", + ] + .join(", ") ))); } }; |