mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-02-28 05:06:49 +08:00
Add context when returning an error
This commit is contained in:
parent
479607e5dd
commit
c614d0dd35
@ -27,24 +27,37 @@ pub fn v1_11_to_v1_12(db_path: &Path) -> anyhow::Result<()> {
|
|||||||
/// 5) Persist the tmp file replacing the old update file.
|
/// 5) Persist the tmp file replacing the old update file.
|
||||||
fn convert_update_files(db_path: &Path) -> anyhow::Result<()> {
|
fn convert_update_files(db_path: &Path) -> anyhow::Result<()> {
|
||||||
let update_files_dir_path = db_path.join("update_files");
|
let update_files_dir_path = db_path.join("update_files");
|
||||||
let file_store = FileStore::new(&update_files_dir_path)?;
|
let file_store = FileStore::new(&update_files_dir_path).with_context(|| {
|
||||||
|
format!("while creating file store for update files dir {update_files_dir_path:?}")
|
||||||
|
})?;
|
||||||
|
|
||||||
for uuid in file_store.all_uuids()? {
|
for uuid in file_store.all_uuids().context("while retrieving uuids from file store")? {
|
||||||
let uuid = uuid?;
|
let uuid = uuid.context("while retrieving uuid from file store")?;
|
||||||
let update_file_path = file_store.get_update_path(uuid);
|
let update_file_path = file_store.get_update_path(uuid);
|
||||||
let update_file = file_store.get_update(uuid)?;
|
let update_file = file_store
|
||||||
|
.get_update(uuid)
|
||||||
|
.with_context(|| format!("while getting update file for uuid {uuid:?}"))?;
|
||||||
|
|
||||||
let mut file = NamedTempFile::new_in(&update_files_dir_path).map(BufWriter::new)?;
|
let mut file =
|
||||||
|
NamedTempFile::new_in(&update_files_dir_path).map(BufWriter::new).with_context(
|
||||||
|
|| format!("while creating bufwriter for update file {update_file_path:?}"),
|
||||||
|
)?;
|
||||||
|
|
||||||
let reader = DocumentsBatchReader::from_reader(update_file)?;
|
let reader = DocumentsBatchReader::from_reader(update_file).with_context(|| {
|
||||||
|
format!("while creating documents batch reader for update file {update_file_path:?}")
|
||||||
|
})?;
|
||||||
let (mut cursor, index) = reader.into_cursor_and_fields_index();
|
let (mut cursor, index) = reader.into_cursor_and_fields_index();
|
||||||
|
|
||||||
while let Some(document) = cursor.next_document()? {
|
while let Some(document) = cursor.next_document().with_context(|| {
|
||||||
|
format!(
|
||||||
|
"while reading documents from batch reader for update file {update_file_path:?}"
|
||||||
|
)
|
||||||
|
})? {
|
||||||
let mut json_document = IndexMap::new();
|
let mut json_document = IndexMap::new();
|
||||||
for (fid, value) in document {
|
for (fid, value) in document {
|
||||||
let field_name = index
|
let field_name = index
|
||||||
.name(fid)
|
.name(fid)
|
||||||
.with_context(|| format!("while getting field name for fid {fid}"))?;
|
.with_context(|| format!("while getting field name for fid {fid} for update file {update_file_path:?}"))?;
|
||||||
let value: &RawValue = serde_json::from_slice(value)?;
|
let value: &RawValue = serde_json::from_slice(value)?;
|
||||||
json_document.insert(field_name, value);
|
json_document.insert(field_name, value);
|
||||||
}
|
}
|
||||||
@ -52,11 +65,12 @@ fn convert_update_files(db_path: &Path) -> anyhow::Result<()> {
|
|||||||
serde_json::to_writer(&mut file, &json_document)?;
|
serde_json::to_writer(&mut file, &json_document)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
let file = file
|
let file = file.into_inner().map_err(|e| e.into_error()).context(format!(
|
||||||
.into_inner()
|
"while flushing update file bufwriter for update file {update_file_path:?}"
|
||||||
.map_err(|e| e.into_error())
|
))?;
|
||||||
.context("while flushing update file bufwriter")?;
|
let _ = file
|
||||||
let _ = file.persist(update_file_path)?;
|
.persist(&update_file_path)
|
||||||
|
.with_context(|| format!("while persisting update file {update_file_path:?}"))?;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user