From 8350ac037ebbd455f4457b47c39a17b286c2d59d Mon Sep 17 00:00:00 2001 From: kangfenmao Date: Mon, 16 Sep 2024 18:04:46 +0800 Subject: [PATCH] fix: dexie data upgrade --- src/renderer/src/databases/index.ts | 16 ++++++------ src/renderer/src/databases/populate.ts | 36 ++++++++++++-------------- 2 files changed, 25 insertions(+), 27 deletions(-) diff --git a/src/renderer/src/databases/index.ts b/src/renderer/src/databases/index.ts index 006a52ce..d5c70504 100644 --- a/src/renderer/src/databases/index.ts +++ b/src/renderer/src/databases/index.ts @@ -14,14 +14,14 @@ db.version(1).stores({ files: 'id, name, origin_name, path, size, ext, type, created_at, count' }) -db.version(2).stores({ - files: 'id, name, origin_name, path, size, ext, type, created_at, count', - topics: '&id, messages', - settings: '&id, value' -}) +db.version(2) + .stores({ + files: 'id, name, origin_name, path, size, ext, type, created_at, count', + topics: '&id, messages', + settings: '&id, value' + }) + .upgrade(populateTopics) -db.on('populate', async (trans) => { - populateTopics(trans) -}) +db.on('populate', populateTopics) export default db diff --git a/src/renderer/src/databases/populate.ts b/src/renderer/src/databases/populate.ts index c85d031d..638e8f97 100644 --- a/src/renderer/src/databases/populate.ts +++ b/src/renderer/src/databases/populate.ts @@ -5,25 +5,23 @@ import localforage from 'localforage' export async function populateTopics(trans: Transaction) { const indexedKeys = await localforage.keys() - if (indexedKeys.length === 0) { - return - } - - for (const key of indexedKeys) { - const value: any = await localforage.getItem(key) - if (key.startsWith('topic:')) { - await trans.db.table('topics').add({ id: value.id, messages: value.messages }) + if (indexedKeys.length > 0) { + for (const key of indexedKeys) { + const value: any = await localforage.getItem(key) + if (key.startsWith('topic:')) { + await trans.db.table('topics').add({ id: value.id, messages: value.messages }) + } + if (key === 'image://avatar') { + await trans.db.table('settings').add({ id: key, value: await localforage.getItem(key) }) + } } - if (key === 'image://avatar') { - await trans.db.table('settings').add({ id: key, value: await localforage.getItem(key) }) - } - } - window.modal.success({ - title: i18n.t('message.upgrade.success.title'), - content: i18n.t('message.upgrade.success.content'), - okText: i18n.t('message.upgrade.success.button'), - centered: true, - onOk: () => window.api.reload() - }) + window.modal.success({ + title: i18n.t('message.upgrade.success.title'), + content: i18n.t('message.upgrade.success.content'), + okText: i18n.t('message.upgrade.success.button'), + centered: true, + onOk: () => window.api.reload() + }) + } }