mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-07-03 03:47:02 +02:00
Move dump v4 patcher into v4.rs
This commit is contained in:
parent
c295924ea2
commit
1816db8c1f
2 changed files with 34 additions and 40 deletions
|
@ -1,11 +1,9 @@
|
|||
use serde_json::Deserializer;
|
||||
use serde_json::{Map, Value};
|
||||
use std::fs;
|
||||
|
||||
use std::fs::File;
|
||||
use std::io::BufReader;
|
||||
use std::io::Write;
|
||||
use std::path::Path;
|
||||
use uuid::Uuid;
|
||||
|
||||
use crate::{AuthController, HeedAuthStore, Result};
|
||||
|
||||
|
@ -46,30 +44,4 @@ impl AuthController {
|
|||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn patch_dump_v4(src: impl AsRef<Path>, dst: impl AsRef<Path>) -> Result<()> {
|
||||
let keys_file_src = src.as_ref().join(KEYS_PATH);
|
||||
|
||||
if !keys_file_src.exists() {
|
||||
return Ok(());
|
||||
}
|
||||
|
||||
fs::create_dir_all(&dst)?;
|
||||
let keys_file_dst = dst.as_ref().join(KEYS_PATH);
|
||||
let mut writer = File::create(&keys_file_dst)?;
|
||||
|
||||
let reader = BufReader::new(File::open(&keys_file_src)?);
|
||||
for key in Deserializer::from_reader(reader).into_iter() {
|
||||
let mut key: Map<String, Value> = key?;
|
||||
|
||||
// generate a new uuid v4 and insert it in the key.
|
||||
let uid = serde_json::to_value(Uuid::new_v4()).unwrap();
|
||||
key.insert("uid".to_string(), uid);
|
||||
|
||||
serde_json::to_writer(&mut writer, &key)?;
|
||||
writer.write_all(b"\n")?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue