diff --git a/src/cmd/src/metasrv.rs b/src/cmd/src/metasrv.rs index 0eb5b52701..1de1e60099 100644 --- a/src/cmd/src/metasrv.rs +++ b/src/cmd/src/metasrv.rs @@ -100,6 +100,9 @@ struct StartCommand { http_timeout: Option, #[clap(long, default_value = "GREPTIMEDB_METASRV")] env_prefix: String, + /// The working home directory of this metasrv instance. + #[clap(long)] + data_home: Option, } impl StartCommand { @@ -152,6 +155,10 @@ impl StartCommand { opts.http.timeout = Duration::from_secs(http_timeout); } + if let Some(data_home) = &self.data_home { + opts.data_home = data_home.clone(); + } + // Disable dashboard in metasrv. opts.http.disable_dashboard = true; diff --git a/src/cmd/src/standalone.rs b/src/cmd/src/standalone.rs index 5483c6c747..8e7a568551 100644 --- a/src/cmd/src/standalone.rs +++ b/src/cmd/src/standalone.rs @@ -227,6 +227,9 @@ struct StartCommand { user_provider: Option, #[clap(long, default_value = "GREPTIMEDB_STANDALONE")] env_prefix: String, + /// The working home directory of this standalone instance. + #[clap(long)] + data_home: Option, } impl StartCommand { @@ -257,6 +260,10 @@ impl StartCommand { opts.http.addr = addr.clone() } + if let Some(data_home) = &self.data_home { + opts.storage.data_home = data_home.clone(); + } + if let Some(addr) = &self.rpc_addr { // frontend grpc addr conflict with datanode default grpc addr let datanode_grpc_addr = DatanodeOptions::default().rpc_addr;