fix(database): skip non-chat sqlite files in migration and session scan

This commit is contained in:
n-WN
2026-02-09 17:16:25 +08:00
committed by digua
parent 717f8d9ef4
commit f2398a6c53
2 changed files with 25 additions and 0 deletions

View File

@@ -489,6 +489,22 @@ export function getAllSessions(): any[] {
const db = new Database(dbPath)
db.pragma('journal_mode = WAL')
// 跳过非聊天会话数据库(例如内部索引库)
const hasChatMeta = db
.prepare("SELECT 1 as ok FROM sqlite_master WHERE type='table' AND name='meta' LIMIT 1")
.get() as { ok: number } | undefined
const hasMemberTable = db
.prepare("SELECT 1 as ok FROM sqlite_master WHERE type='table' AND name='member' LIMIT 1")
.get() as { ok: number } | undefined
const hasMessageTable = db
.prepare("SELECT 1 as ok FROM sqlite_master WHERE type='table' AND name='message' LIMIT 1")
.get() as { ok: number } | undefined
if (!hasChatMeta || !hasMemberTable || !hasMessageTable) {
db.close()
continue
}
const meta = db.prepare('SELECT * FROM meta LIMIT 1').get() as DbMeta | undefined
if (meta) {