diff --git a/server/config/base.js b/server/config/base.js index 45e882f..591f0a8 100644 --- a/server/config/base.js +++ b/server/config/base.js @@ -18,7 +18,7 @@ module.exports = { //поправить в случае, если были критические изменения в DbCreator или InpxParser //иначе будет рассинхронизация между сервером и клиентом на уровне БД - dbVersion: '10', + dbVersion: '11', dbCacheSize: 5, maxPayloadSize: 500,//in MB diff --git a/server/core/DbCreator.js b/server/core/DbCreator.js index 0ed0cc3..4066ff7 100644 --- a/server/core/DbCreator.js +++ b/server/core/DbCreator.js @@ -337,7 +337,7 @@ class DbCreator { //сохраним поисковые таблицы const chunkSize = 10000; - const saveTable = async(table, arr, nullArr, indexType = 'string') => { + const saveTable = async(table, arr, nullArr, indexType = 'string', delEmpty = false) => { if (indexType == 'string') arr.sort((a, b) => a.value.localeCompare(b.value)); @@ -366,6 +366,13 @@ class DbCreator { callback({progress: i/arr.length}); } + if (delEmpty) { + const delResult = await db.delete({table, where: `@@indexLR('value', '?', '?')`}); + const statField = `${table}Count`; + if (stats[statField]) + stats[statField] -= delResult.deleted; + } + nullArr(); await db.close({table}); utils.freeMemory(); @@ -378,7 +385,7 @@ class DbCreator { //series callback({job: 'series save', jobMessage: 'Сохранение индекса серий', jobStep: 4, progress: 0}); - await saveTable('series', seriesArr, () => {seriesArr = null}); + await saveTable('series', seriesArr, () => {seriesArr = null}, 'string', true); //title callback({job: 'title save', jobMessage: 'Сохранение индекса названий', jobStep: 5, progress: 0});