Добавлено пересоздание поисковой БД при обнаружении повреждений
This commit is contained in:
@@ -132,7 +132,7 @@ class WebWorker {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async loadOrCreateDb(recreate = false) {
|
async loadOrCreateDb(recreate = false, iteration = 0) {
|
||||||
this.setMyState(ssDbLoading);
|
this.setMyState(ssDbLoading);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -187,14 +187,24 @@ class WebWorker {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
//открываем таблицы
|
try {
|
||||||
await db.openAll({exclude: ['author_id', 'series_id', 'title_id', 'book']});
|
//открываем таблицы
|
||||||
|
await db.openAll({exclude: ['author_id', 'series_id', 'title_id', 'book']});
|
||||||
|
|
||||||
const bookCacheSize = 500;
|
const bookCacheSize = 500;
|
||||||
await db.open({
|
await db.open({
|
||||||
table: 'book',
|
table: 'book',
|
||||||
cacheSize: (config.lowMemoryMode || config.dbCacheSize > bookCacheSize ? config.dbCacheSize : bookCacheSize)
|
cacheSize: (config.lowMemoryMode || config.dbCacheSize > bookCacheSize ? config.dbCacheSize : bookCacheSize)
|
||||||
});
|
});
|
||||||
|
} catch(e) {
|
||||||
|
log(LM_ERR, `Database error: ${e.message}`);
|
||||||
|
if (iteration < 1) {
|
||||||
|
log('Recreating DB');
|
||||||
|
await this.loadOrCreateDb(true, iteration + 1);
|
||||||
|
} else
|
||||||
|
throw e;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//поисковый движок
|
//поисковый движок
|
||||||
this.dbSearcher = new DbSearcher(config, db);
|
this.dbSearcher = new DbSearcher(config, db);
|
||||||
|
|||||||
Reference in New Issue
Block a user