fix the deletion of the data.ms in case of failure

This commit is contained in:
Irevoire 2022-10-21 18:09:51 +02:00 committed by Clément Renault
parent 8d1408c65e
commit ca4234b445
No known key found for this signature in database
GPG Key ID: 92ADA4E935E71FA4

View File

@ -144,8 +144,13 @@ pub fn setup_meilisearch(opt: &Opt) -> anyhow::Result<(IndexScheduler, AuthContr
if empty_db && src_path_exists { if empty_db && src_path_exists {
let (mut index_scheduler, mut auth_controller) = meilisearch_builder()?; let (mut index_scheduler, mut auth_controller) = meilisearch_builder()?;
import_dump(&opt.db_path, path, &mut index_scheduler, &mut auth_controller)?; match import_dump(&opt.db_path, path, &mut index_scheduler, &mut auth_controller) {
(index_scheduler, auth_controller) Ok(()) => (index_scheduler, auth_controller),
Err(e) => {
std::fs::remove_dir_all(&opt.db_path)?;
return Err(e.into());
}
}
} else if !empty_db && !opt.ignore_dump_if_db_exists { } else if !empty_db && !opt.ignore_dump_if_db_exists {
bail!( bail!(
"database already exists at {:?}, try to delete it or rename it", "database already exists at {:?}, try to delete it or rename it",
@ -155,8 +160,13 @@ pub fn setup_meilisearch(opt: &Opt) -> anyhow::Result<(IndexScheduler, AuthContr
bail!("dump doesn't exist at {:?}", path) bail!("dump doesn't exist at {:?}", path)
} else { } else {
let (mut index_scheduler, mut auth_controller) = meilisearch_builder()?; let (mut index_scheduler, mut auth_controller) = meilisearch_builder()?;
import_dump(&opt.db_path, path, &mut index_scheduler, &mut auth_controller)?; match import_dump(&opt.db_path, path, &mut index_scheduler, &mut auth_controller) {
(index_scheduler, auth_controller) Ok(()) => (index_scheduler, auth_controller),
Err(e) => {
std::fs::remove_dir_all(&opt.db_path)?;
return Err(e.into());
}
}
} }
} else { } else {
meilisearch_builder()? meilisearch_builder()?