diff --git a/src/indexing/EventIndex.js b/src/indexing/EventIndex.js index d4e8ab0117..ca974dd4fc 100644 --- a/src/indexing/EventIndex.js +++ b/src/indexing/EventIndex.js @@ -42,9 +42,6 @@ export default class EventIndex extends EventEmitter { async init() { const indexManager = PlatformPeg.get().getEventIndexingManager(); - await indexManager.initEventIndex(); - console.log("EventIndex: Successfully initialized the event index"); - this.crawlerCheckpoints = await indexManager.loadCheckpoints(); console.log("EventIndex: Loaded checkpoints", this.crawlerCheckpoints); diff --git a/src/indexing/EventIndexPeg.js b/src/indexing/EventIndexPeg.js index ae4c14dafd..20e05f985d 100644 --- a/src/indexing/EventIndexPeg.js +++ b/src/indexing/EventIndexPeg.js @@ -23,6 +23,8 @@ import PlatformPeg from "../PlatformPeg"; import EventIndex from "../indexing/EventIndex"; import SettingsStore, {SettingLevel} from '../settings/SettingsStore'; +const INDEX_VERSION = 1; + class EventIndexPeg { constructor() { this.index = null; @@ -66,8 +68,25 @@ class EventIndexPeg { */ async initEventIndex() { const index = new EventIndex(); + const indexManager = PlatformPeg.get().getEventIndexingManager(); try { + await indexManager.initEventIndex(); + + const userVersion = await indexManager.getUserVersion(); + const eventIndexIsEmpty = await indexManager.isEventIndexEmpty(); + + if (eventIndexIsEmpty) { + await indexManager.setUserVersion(INDEX_VERSION); + } else if (userVersion === 0 && !eventIndexIsEmpty) { + await indexManager.closeEventIndex(); + await this.deleteEventIndex(); + + await indexManager.initEventIndex(); + await indexManager.setUserVersion(INDEX_VERSION); + } + + console.log("EventIndex: Successfully initialized the event index"); await index.init(); } catch (e) { console.log("EventIndex: Error initializing the event index", e);