From 0d9c8c79b4ee73a5b6d84d5ac30acd4512668c6b Mon Sep 17 00:00:00 2001 From: mokurin000 <1348292515a@gmail.com> Date: Sat, 2 Aug 2025 22:13:04 +0800 Subject: [PATCH] enhance: compact & upgrade database --- sdgb-cli/src/cache/mod.rs | 7 +++++-- sdgb-cli/src/main.rs | 3 +++ sdgb-cli/src/utils/helpers/mod.rs | 1 - 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/sdgb-cli/src/cache/mod.rs b/sdgb-cli/src/cache/mod.rs index 8813e2a..a184fed 100644 --- a/sdgb-cli/src/cache/mod.rs +++ b/sdgb-cli/src/cache/mod.rs @@ -3,9 +3,12 @@ use std::sync::LazyLock; use redb::{ReadTransaction, Table, TableDefinition, WriteTransaction}; static DATABASE: LazyLock = LazyLock::new(|| { - redb::Database::builder() + let mut db = redb::Database::builder() .create("players.redb") - .expect("failed to open database") + .expect("failed to open database"); + _ = db.upgrade(); + _ = db.compact(); + db }); pub const PLAYERS: TableDefinition<'_, u32, Vec> = redb::TableDefinition::new("players"); diff --git a/sdgb-cli/src/main.rs b/sdgb-cli/src/main.rs index ca5bdd8..b712256 100644 --- a/sdgb-cli/src/main.rs +++ b/sdgb-cli/src/main.rs @@ -44,6 +44,9 @@ static EARLY_QUIT: AtomicBool = AtomicBool::new(false); async fn main() -> Result<(), Box> { nyquest_preset::register(); + #[cfg(feature = "fetchall")] + let _ = cache::init_db(); + let logger = spdlog::default_logger().fork_with(|log| { log.set_level_filter(MoreSevereEqual(if cfg!(debug_assertions) { Level::Debug diff --git a/sdgb-cli/src/utils/helpers/mod.rs b/sdgb-cli/src/utils/helpers/mod.rs index 51daa76..aedd90c 100644 --- a/sdgb-cli/src/utils/helpers/mod.rs +++ b/sdgb-cli/src/utils/helpers/mod.rs @@ -90,7 +90,6 @@ where A::Response: Encode + for<'a> BorrowDecode<'a, ()> + HasUid, { let user_ids = user_ids.into(); - let _ = cache::init_db(); let read = cache::read_txn()?; let write = cache::write_txn()?; let config = sdgb_api::bincode::config::Configuration::<