feat(db): wire migrator into app startup (fail-soft, lazy require)
Migrator runs on app.whenReady before pollers/createWindow. Lazy require keeps native better-sqlite3 errors from blocking app startup. Result is logged via appendDebugLog for diagnosis. Verified via npm run test:e2e (0 issues, app starts cleanly). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6480bc2586
commit
edeaddb383
21
src/main.ts
21
src/main.ts
@ -7211,6 +7211,27 @@ app.whenReady().then(() => {
|
||||
refreshBundledToolPaths(true);
|
||||
startMetadataCacheCleanup();
|
||||
startDebugLogFlushTimer();
|
||||
|
||||
// SQLite-Shadow-Migration (Plan 02 / v5.0.0-alpha.1). Idempotent + fail-soft —
|
||||
// bei Fehler bleibt JSON der Master. Lazy require, damit Native-Build-Fehler
|
||||
// den App-Start nicht verhindern.
|
||||
try {
|
||||
const { openDatabase } = require('./main/infra/db');
|
||||
const { migrateJsonToSqlite } = require('./main/domain/migrator');
|
||||
const dbPath = path.join(APPDATA_DIR, 'app.db');
|
||||
const db = openDatabase(dbPath);
|
||||
try {
|
||||
const result = migrateJsonToSqlite({ db, appDataDir: APPDATA_DIR });
|
||||
appendDebugLog('sqlite-migrator', result);
|
||||
} finally {
|
||||
db.close();
|
||||
}
|
||||
} catch (e) {
|
||||
appendDebugLog('sqlite-migrator-failed', {
|
||||
error: e instanceof Error ? e.message : String(e),
|
||||
});
|
||||
}
|
||||
|
||||
restartAutoRecordPoller();
|
||||
restartAutoVodPoller();
|
||||
restartLiveStatusPoller();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user