diff --git a/apps/desktop/src-tauri/src/app_state.rs b/apps/desktop/src-tauri/src/app_state.rs index 4b6f45b..ba6cfd1 100644 --- a/apps/desktop/src-tauri/src/app_state.rs +++ b/apps/desktop/src-tauri/src/app_state.rs @@ -62,16 +62,12 @@ impl AppState { /// 获取数据库实例 pub fn get_database(&self) -> Arc { - // 如果数据库未初始化,先初始化 - if self.database.lock().unwrap().is_none() { - let _ = self.initialize_database(); - } - - // 使用静态数据库实例,避免重复初始化 + // 使用全局静态数据库实例,确保整个应用只有一个数据库实例 use std::sync::OnceLock; static DATABASE_INSTANCE: OnceLock> = OnceLock::new(); DATABASE_INSTANCE.get_or_init(|| { + // 只在第一次调用时初始化数据库 Arc::new(Database::new().unwrap()) }).clone() }