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:
xRangerDE 2026-05-11 22:05:29 +02:00
parent 6480bc2586
commit edeaddb383

View File

@ -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();