diff --git a/apps/electron/layers/main/src/db/base-db-adapter.ts b/apps/electron/layers/main/src/db/base-db-adapter.ts index 60a6693621..268253ca79 100644 --- a/apps/electron/layers/main/src/db/base-db-adapter.ts +++ b/apps/electron/layers/main/src/db/base-db-adapter.ts @@ -1,5 +1,4 @@ import { SqliteConnection } from '@affine/native'; -import assert from 'assert'; import { logger } from '../logger'; @@ -25,11 +24,15 @@ export abstract class BaseSQLiteAdapter { const { db } = this; this.db = null; await db?.close(); + logger.info(`[SQLiteAdapter:${this.role}]`, 'destroyed:', this.path); } async addBlob(key: string, data: Uint8Array) { try { - assert(this.db, `${this.path} is not connected`); + if (!this.db) { + logger.warn(`${this.path} is not connected`); + return; + } await this.db.addBlob(key, data); } catch (error) { logger.error('addBlob', error); @@ -38,7 +41,10 @@ export abstract class BaseSQLiteAdapter { async getBlob(key: string) { try { - assert(this.db, `${this.path} is not connected`); + if (!this.db) { + logger.warn(`${this.path} is not connected`); + return; + } const blob = await this.db.getBlob(key); return blob?.data; } catch (error) { @@ -49,7 +55,10 @@ export abstract class BaseSQLiteAdapter { async deleteBlob(key: string) { try { - assert(this.db, `${this.path} is not connected`); + if (!this.db) { + logger.warn(`${this.path} is not connected`); + return; + } await this.db.deleteBlob(key); } catch (error) { logger.error(`${this.path} delete blob failed`, error); @@ -58,7 +67,10 @@ export abstract class BaseSQLiteAdapter { async getBlobKeys() { try { - assert(this.db, `${this.path} is not connected`); + if (!this.db) { + logger.warn(`${this.path} is not connected`); + return []; + } return await this.db.getBlobKeys(); } catch (error) { logger.error(`getBlobKeys failed`, error); @@ -68,7 +80,10 @@ export abstract class BaseSQLiteAdapter { async getUpdates() { try { - assert(this.db, `${this.path} is not connected`); + if (!this.db) { + logger.warn(`${this.path} is not connected`); + return []; + } return await this.db.getUpdates(); } catch (error) { logger.error('getUpdates', error); @@ -80,8 +95,11 @@ export abstract class BaseSQLiteAdapter { async addUpdateToSQLite(db: SqliteConnection, updates: Uint8Array[]) { // batch write instead write per key stroke? try { + if (!this.db) { + logger.warn(`${this.path} is not connected`); + return; + } const start = performance.now(); - await db.connect(); await db.insertUpdates(updates); logger.debug( `[SQLiteAdapter][${this.role}] addUpdateToSQLite`, diff --git a/apps/electron/layers/main/src/db/ensure-db.ts b/apps/electron/layers/main/src/db/ensure-db.ts index 96992b418c..13115e2138 100644 --- a/apps/electron/layers/main/src/db/ensure-db.ts +++ b/apps/electron/layers/main/src/db/ensure-db.ts @@ -85,10 +85,6 @@ function getWorkspaceDB$(id: string) { try { await db.destroy(); db$Map.delete(id); - logger.info( - '[ensureSQLiteDB] db connection destroyed', - db.workspaceId - ); return db; } catch (err) { logger.error('[ensureSQLiteDB] destroy db failed', err); diff --git a/apps/electron/layers/main/src/dialog/dialog.ts b/apps/electron/layers/main/src/dialog/dialog.ts index 372b73e3ce..b39f865a3f 100644 --- a/apps/electron/layers/main/src/dialog/dialog.ts +++ b/apps/electron/layers/main/src/dialog/dialog.ts @@ -306,9 +306,17 @@ export async function moveDBFile( // remove the old db file, but we don't care if it fails if (meta.secondaryDBPath) { - fs.remove(meta.secondaryDBPath).catch(err => { - logger.error(`[moveDBFile] remove ${meta.secondaryDBPath} failed`, err); - }); + await fs + .remove(meta.secondaryDBPath) + .then(() => { + logger.info(`[moveDBFile] removed ${meta.secondaryDBPath}`); + }) + .catch(err => { + logger.error( + `[moveDBFile] remove ${meta.secondaryDBPath} failed`, + err + ); + }); } // update meta diff --git a/apps/electron/layers/main/src/updater/electron-updater.ts b/apps/electron/layers/main/src/updater/electron-updater.ts index 3b3f2f8c8a..9efe726790 100644 --- a/apps/electron/layers/main/src/updater/electron-updater.ts +++ b/apps/electron/layers/main/src/updater/electron-updater.ts @@ -45,7 +45,8 @@ export const registerUpdater = async () => { _autoUpdater = autoUpdater; - if (!_autoUpdater) { + // skip auto update in dev mode + if (!_autoUpdater || isDev) { return; }