feat(migration): enable silent JSON to SQLite migration with toast notification

- Remove environment variable feature gate (CC_SWITCH_ENABLE_JSON_DB_MIGRATION)
- Automatically migrate config.json to SQLite when db doesn't exist
- Archive migrated config.json as config.json.migrated for recovery
- Add migration success flag in init_status.rs (one-time consumption)
- Add get_migration_result command for frontend to query
- Show toast notification on successful migration in App.tsx
This commit is contained in:
Jason
2025-11-25 16:07:54 +08:00
parent 014a7c0e30
commit 2526dbc58f
4 changed files with 72 additions and 53 deletions
+7
View File
@@ -51,3 +51,10 @@ pub async fn is_portable_mode() -> Result<bool, String> {
pub async fn get_init_error() -> Result<Option<InitErrorPayload>, String> {
Ok(crate::init_status::get_init_error())
}
/// 获取 JSON→SQLite 迁移结果(若有)。
/// 只返回一次 true,之后返回 false,用于前端显示一次性 Toast 通知。
#[tauri::command]
pub async fn get_migration_result() -> Result<bool, String> {
Ok(crate::init_status::take_migration_success())
}