mirror of
https://github.com/meilisearch/MeiliSearch
synced 2024-11-29 16:24:26 +01:00
Patch dump v4
This commit is contained in:
parent
b9a79eb858
commit
70916d6596
@ -1,8 +1,11 @@
|
|||||||
|
use serde_json::{Map, Value};
|
||||||
|
use std::fs;
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io::BufRead;
|
use std::io::BufRead;
|
||||||
use std::io::BufReader;
|
use std::io::BufReader;
|
||||||
use std::io::Write;
|
use std::io::Write;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
use uuid::Uuid;
|
||||||
|
|
||||||
use crate::{AuthController, HeedAuthStore, Result};
|
use crate::{AuthController, HeedAuthStore, Result};
|
||||||
|
|
||||||
@ -44,4 +47,27 @@ impl AuthController {
|
|||||||
|
|
||||||
Ok(())
|
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 mut reader = BufReader::new(File::open(&keys_file_src)?).lines();
|
||||||
|
while let Some(key) = reader.next().transpose()? {
|
||||||
|
let mut key: Map<String, Value> = serde_json::from_str(&key)?;
|
||||||
|
let uid = Uuid::new_v4().to_string();
|
||||||
|
key.insert("uid".to_string(), Value::String(uid));
|
||||||
|
serde_json::to_writer(&mut writer, &key)?;
|
||||||
|
writer.write_all(b"\n")?;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,8 @@ use fs_extra::dir::{self, CopyOptions};
|
|||||||
use log::info;
|
use log::info;
|
||||||
use tempfile::tempdir;
|
use tempfile::tempdir;
|
||||||
|
|
||||||
|
use meilisearch_auth::AuthController;
|
||||||
|
|
||||||
use crate::dump::{compat, Metadata};
|
use crate::dump::{compat, Metadata};
|
||||||
use crate::options::IndexerOpts;
|
use crate::options::IndexerOpts;
|
||||||
use crate::tasks::task::Task;
|
use crate::tasks::task::Task;
|
||||||
@ -43,9 +45,7 @@ pub fn load_dump(
|
|||||||
patch_updates(&src, &patched_dir)?;
|
patch_updates(&src, &patched_dir)?;
|
||||||
|
|
||||||
// Keys
|
// Keys
|
||||||
if src.as_ref().join("keys").exists() {
|
AuthController::patch_dump_v4(&src, patched_dir.path())?;
|
||||||
fs::copy(src.as_ref().join("keys"), patched_dir.path().join("keys"))?;
|
|
||||||
}
|
|
||||||
|
|
||||||
super::v5::load_dump(
|
super::v5::load_dump(
|
||||||
meta,
|
meta,
|
||||||
|
Loading…
Reference in New Issue
Block a user