diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/bg/js/database.js | 29 | ||||
| -rw-r--r-- | ext/manifest.json | 2 | 
2 files changed, 22 insertions, 9 deletions
| diff --git a/ext/bg/js/database.js b/ext/bg/js/database.js index a21708f5..9fb45794 100644 --- a/ext/bg/js/database.js +++ b/ext/bg/js/database.js @@ -20,23 +20,36 @@  class Database {      constructor() {          this.db = null; +        this.dbVersion = 1;          this.tagMetaCache = {};      } +    sanitize() { +        const db = new Dexie('dict'); +        return db.open().then(() => { +            db.close(); +            if (db.verno !== this.dbVersion) { +                return db.delete(); +            } +        }).catch(() => {}); +    } +      prepare() {          if (this.db !== null) {              return Promise.reject('database already initialized');          } -        this.db = new Dexie('dict'); -        this.db.version(1).stores({ -            terms: '++id,dictionary,expression,reading', -            kanji: '++,dictionary,character', -            tagMeta: '++,dictionary', -            dictionaries: '++,title,version', -        }); +        return this.sanitize().then(() => { +            this.db = new Dexie('dict'); +            this.db.version(this.dbVersion).stores({ +                terms: '++id,dictionary,expression,reading', +                kanji: '++,dictionary,character', +                tagMeta: '++,dictionary', +                dictionaries: '++,title,version', +            }); -        return this.db.open(); +            return this.db.open(); +        });      }      purge() { diff --git a/ext/manifest.json b/ext/manifest.json index 86908f0e..c7c1ffa9 100644 --- a/ext/manifest.json +++ b/ext/manifest.json @@ -1,7 +1,7 @@  {      "manifest_version": 2,      "name": "Yomichan", -    "version": "1.0.0", +    "version": "1.0.1",      "description": "Japanese dictionary with Anki integration",      "icons": {"16": "img/icon16.png", "48": "img/icon48.png", "128": "img/icon128.png"}, |