优化 / 高 / 前端组件
src/components/settings/SettingsModal.tsx
SettingsModal 中 inheritDatabase 复选框允许用户继承原工作空间数据库:
PRAGMA integrity_check
async function validateDatabase(dbPath: string): Promise<boolean> { const tempDb = new Database(dbPath, { readonly: true }); const result = tempDb.prepare('PRAGMA integrity_check').get() as { integrity_check: string }; tempDb.close(); return result.integrity_check === 'ok'; } if (inheritDatabase) { const isValid = await validateDatabase(sourceDbPath); if (!isValid) { showError('源数据库损坏,无法继承'); return; } // 执行继承 }
文件: electron/ipc/handlers.ts + electron/preload.ts + src/types/global.d.ts + src/components/settings/SettingsModal.tsx
electron/ipc/handlers.ts
electron/preload.ts
src/types/global.d.ts
修复: 主进程新增 workspace:checkDatabaseIntegrity handler(用 better-sqlite3 只读打开源库执行 PRAGMA integrity_check);preload 暴露 workspace.checkDatabaseIntegrity;SettingsModal.handleApply 在 inheritDatabase 勾选时先校验源数据库,损坏或校验异常则 toast 报错并中止切换。
workspace:checkDatabaseIntegrity
workspace.checkDatabaseIntegrity
SettingsModal.handleApply
inheritDatabase
验证: tsc --noEmit 类型检查通过。
tsc --noEmit
No dependencies set.
The note is not visible to the blocked user.
问题类型
优化 / 高 / 前端组件
文件位置
src/components/settings/SettingsModal.tsx问题描述
SettingsModal 中 inheritDatabase 复选框允许用户继承原工作空间数据库:
影响
建议修复
PRAGMA integrity_check修复说明
文件:
electron/ipc/handlers.ts+electron/preload.ts+src/types/global.d.ts+src/components/settings/SettingsModal.tsx修复: 主进程新增
workspace:checkDatabaseIntegrityhandler(用 better-sqlite3 只读打开源库执行PRAGMA integrity_check);preload 暴露workspace.checkDatabaseIntegrity;SettingsModal.handleApply在inheritDatabase勾选时先校验源数据库,损坏或校验异常则 toast 报错并中止切换。验证:
tsc --noEmit类型检查通过。