mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-12-02 01:55:03 +08:00
fix #1009
This commit is contained in:
parent
834f3cc192
commit
f1925b8f71
@ -52,7 +52,7 @@ async fn main() -> Result<(), MainError> {
|
|||||||
_ => unreachable!(),
|
_ => unreachable!(),
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(path) = &opt.load_from_snapshot {
|
if let Some(path) = &opt.import_snapshot {
|
||||||
snapshot::load_snapshot(&opt.db_path, path, opt.ignore_snapshot_if_db_exists, opt.ignore_missing_snapshot)?;
|
snapshot::load_snapshot(&opt.db_path, path, opt.ignore_snapshot_if_db_exists, opt.ignore_missing_snapshot)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,8 +74,8 @@ async fn main() -> Result<(), MainError> {
|
|||||||
dump::import_dump(&data, path, opt.dump_batch_size)?;
|
dump::import_dump(&data, path, opt.dump_batch_size)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(dir) = &opt.snapshot_dir {
|
if opt.schedule_snapshot {
|
||||||
snapshot::schedule_snapshot(data.clone(), &dir, opt.snapshot_interval_sec.unwrap_or(86400))?;
|
snapshot::schedule_snapshot(data.clone(), &opt.snapshot_dir, opt.snapshot_interval_sec.unwrap_or(86400))?;
|
||||||
}
|
}
|
||||||
|
|
||||||
print_launch_resume(&opt, &data);
|
print_launch_resume(&opt, &data);
|
||||||
|
@ -97,23 +97,27 @@ pub struct Opt {
|
|||||||
/// Defines the path of the snapshot file to import.
|
/// Defines the path of the snapshot file to import.
|
||||||
/// This option will, by default, stop the process if a database already exist or if no snapshot exists at
|
/// This option will, by default, stop the process if a database already exist or if no snapshot exists at
|
||||||
/// the given path. If this option is not specified no snapshot is imported.
|
/// the given path. If this option is not specified no snapshot is imported.
|
||||||
#[structopt(long, env = "MEILI_LOAD_FROM_SNAPSHOT")]
|
#[structopt(long, env = "MEILI_IMPORT_SNAPSHOT")]
|
||||||
pub load_from_snapshot: Option<PathBuf>,
|
pub import_snapshot: Option<PathBuf>,
|
||||||
|
|
||||||
/// The engine will ignore a missing snapshot and not return an error in such case.
|
/// The engine will ignore a missing snapshot and not return an error in such case.
|
||||||
#[structopt(long, requires = "load-from-snapshot", env = "MEILI_IGNORE_MISSING_SNAPSHOT")]
|
#[structopt(long, requires = "import-snapshot", env = "MEILI_IGNORE_MISSING_SNAPSHOT")]
|
||||||
pub ignore_missing_snapshot: bool,
|
pub ignore_missing_snapshot: bool,
|
||||||
|
|
||||||
/// The engine will skip snapshot importation and not return an error in such case.
|
/// The engine will skip snapshot importation and not return an error in such case.
|
||||||
#[structopt(long, requires = "load-from-snapshot", env = "MEILI_IGNORE_SNAPSHOT_IF_DB_EXISTS")]
|
#[structopt(long, requires = "import-snapshot", env = "MEILI_IGNORE_SNAPSHOT_IF_DB_EXISTS")]
|
||||||
pub ignore_snapshot_if_db_exists: bool,
|
pub ignore_snapshot_if_db_exists: bool,
|
||||||
|
|
||||||
/// Defines the directory path where meilisearch will create snapshot each snapshot_time_gap.
|
/// Defines the directory path where meilisearch will create snapshot each snapshot_time_gap.
|
||||||
#[structopt(long, env = "MEILI_SNAPSHOT_DIR")]
|
#[structopt(long, env = "MEILI_SNAPSHOT_DIR", default_value = "snapshots/")]
|
||||||
pub snapshot_dir: Option<PathBuf>,
|
pub snapshot_dir: PathBuf,
|
||||||
|
|
||||||
|
/// Activate snapshot scheduling.
|
||||||
|
#[structopt(long, env = "MEILI_SCHEDULE_SNAPSHOT")]
|
||||||
|
pub schedule_snapshot: bool,
|
||||||
|
|
||||||
/// Defines time interval, in seconds, between each snapshot creation.
|
/// Defines time interval, in seconds, between each snapshot creation.
|
||||||
#[structopt(long, requires = "snapshot-path", env = "MEILI_SNAPSHOT_INTERVAL_SEC")]
|
#[structopt(long, env = "MEILI_SNAPSHOT_INTERVAL_SEC")]
|
||||||
pub snapshot_interval_sec: Option<u64>,
|
pub snapshot_interval_sec: Option<u64>,
|
||||||
|
|
||||||
/// Folder where dumps are created when the dump route is called.
|
/// Folder where dumps are created when the dump route is called.
|
||||||
|
@ -20,7 +20,7 @@ pub fn load_snapshot(
|
|||||||
if !db_path.exists() && snapshot_path.exists() {
|
if !db_path.exists() && snapshot_path.exists() {
|
||||||
compression::from_tar_gz(snapshot_path, db_path)
|
compression::from_tar_gz(snapshot_path, db_path)
|
||||||
} else if db_path.exists() && !ignore_snapshot_if_db_exists {
|
} else if db_path.exists() && !ignore_snapshot_if_db_exists {
|
||||||
Err(Error::Internal(format!("database already exists at {:?}", db_path)))
|
Err(Error::Internal(format!("database already exists at {:?}, try to delete it or rename it", db_path)))
|
||||||
} else if !snapshot_path.exists() && !ignore_missing_snapshot {
|
} else if !snapshot_path.exists() && !ignore_missing_snapshot {
|
||||||
Err(Error::Internal(format!("snapshot doesn't exist at {:?}", snapshot_path)))
|
Err(Error::Internal(format!("snapshot doesn't exist at {:?}", snapshot_path)))
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user