From d894162bb48de1bce5a8434c489be4c5e79e60cb Mon Sep 17 00:00:00 2001 From: YoVinchen Date: Mon, 22 Dec 2025 22:43:14 +0800 Subject: [PATCH] fix(database): ensure in_failover_queue column exists for v2 databases Add column check in create_tables to handle existing v2 databases that were created before the failover queue refactor. --- src-tauri/src/database/schema.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src-tauri/src/database/schema.rs b/src-tauri/src/database/schema.rs index 2321e4a26..4c1602781 100644 --- a/src-tauri/src/database/schema.rs +++ b/src-tauri/src/database/schema.rs @@ -313,8 +313,19 @@ impl Database { [], ); + // 确保 in_failover_queue 列存在(对于已存在的 v2 数据库) + Self::add_column_if_missing( + conn, + "providers", + "in_failover_queue", + "BOOLEAN NOT NULL DEFAULT 0", + )?; + + // 删除旧的 failover_queue 表(如果存在) + let _ = conn.execute("DROP INDEX IF EXISTS idx_failover_queue_order", []); + let _ = conn.execute("DROP TABLE IF EXISTS failover_queue", []); + // 为故障转移队列创建索引(基于 providers 表) - // 注意:此索引依赖 in_failover_queue 列,对于旧数据库会在迁移时创建 let _ = conn.execute( "CREATE INDEX IF NOT EXISTS idx_providers_failover ON providers(app_type, in_failover_queue, sort_index)",