diff options
author | Baptiste Jonglez <git@bitsofnetworks.org> | 2025-01-24 19:21:08 +0100 |
---|---|---|
committer | Baptiste Jonglez <git@bitsofnetworks.org> | 2025-01-27 18:33:55 +0100 |
commit | 59c153d2804500b51362b20c3c8252383ef0e9ce (patch) | |
tree | d5ccb41f0ce403780a236dac04337c0eb82734fe /src | |
parent | 0156e40c9d8015b81f80f12f058564288fdb304c (diff) | |
download | garage-59c153d2804500b51362b20c3c8252383ef0e9ce.tar.gz garage-59c153d2804500b51362b20c3c8252383ef0e9ce.zip |
db-snapshot: allow to set directory where snapshots are stored
Fix #926
Diffstat (limited to 'src')
-rw-r--r-- | src/model/snapshot.rs | 10 | ||||
-rw-r--r-- | src/util/config.rs | 3 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/model/snapshot.rs b/src/model/snapshot.rs index 87756f60..8e8995f9 100644 --- a/src/model/snapshot.rs +++ b/src/model/snapshot.rs @@ -41,8 +41,14 @@ pub fn snapshot_metadata(garage: &Garage) -> Result<(), Error> { } }; - let mut snapshots_dir = garage.config.metadata_dir.clone(); - snapshots_dir.push("snapshots"); + let snapshots_dir = match &garage.config.metadata_snapshots_dir { + Some(d) => d.clone(), + None => { + let mut default_snapshots_dir = garage.config.metadata_dir.clone(); + default_snapshots_dir.push("snapshots"); + default_snapshots_dir + } + }; fs::create_dir_all(&snapshots_dir)?; let mut new_path = snapshots_dir.clone(); diff --git a/src/util/config.rs b/src/util/config.rs index 01f7350a..b4e2b008 100644 --- a/src/util/config.rs +++ b/src/util/config.rs @@ -31,6 +31,9 @@ pub struct Config { #[serde(default)] pub use_local_tz: bool, + /// Optional directory where metadata snapshots will be store + pub metadata_snapshots_dir: Option<PathBuf>, + /// Automatic snapshot interval for metadata #[serde(default)] pub metadata_auto_snapshot_interval: Option<String>, |