diff --git a/src-native/migrate.rs b/src-native/migrate.rs index 41d6329..2553232 100644 --- a/src-native/migrate.rs +++ b/src-native/migrate.rs @@ -4,13 +4,17 @@ use anyhow::{Context, Result}; use sqlx::{ ConnectOptions, Connection, Sqlite, migrate::MigrateDatabase, sqlite::SqliteConnectOptions, }; +use std::path::PathBuf; use std::time::Instant; use tempfile::TempDir; pub async fn migrate_to_sqlite(paths: &Paths) -> Result<()> { let now = Instant::now(); - let library_json = match load_library_json(&paths.library_json)? { + let library_dir = PathBuf::from(&paths.library_dir); + let library_json = library_dir.join("Library.json"); + + let library_json = match load_library_json(&library_json)? { None => { return Ok(()); } @@ -48,6 +52,11 @@ pub async fn migrate_to_sqlite(paths: &Paths) -> Result<()> { println!("Migrated to SQLite: {}ms", now.elapsed().as_millis()); + // Move Library.json to Library.json.bak + let library_json_backup = library_dir.join("Library backup.json"); + std::fs::rename(&paths.library_json, library_json_backup) + .context("Failed to rename Library.json to Library backup.json")?; + Ok(()) } @@ -341,8 +350,9 @@ mod old_library { use serde_json::{Value, json}; use std::fs::File; use std::io::{ErrorKind, Read, Seek, SeekFrom}; + use std::path::PathBuf; - pub fn load_library_json(library_json: &str) -> Result> { + pub fn load_library_json(library_json: &PathBuf) -> Result> { let mut library_file = match File::open(&library_json) { Ok(file) => file, Err(err) => match err.kind() {