2016-03-09 1 views
0

J'utilise Dexie.js et parfois l'erreur "Impossible d'ajouter la version lorsque la base de données est ouverte" s'affiche lorsque j'essaie d'accéder à la base de données.Dexie - Impossible d'ajouter la version lorsque la base de données est ouverte

Existe-t-il une meilleure pratique pour traiter cette erreur? Ai-je besoin de fermer la base de données dans ce cas et essayer de le rouvrir?

Mon code est ce (écrit en CoffeeScript):

@db = new Dexie @db_name 
    @db.version db_version 
    .stores stores 
    .upgrade (transaction) => 
    console.warn 'Database upgrade needed' 

    @db.open() 
    .then -> 
    console.log 'Storage initialized' 
    .catch (error) -> 
    console.error error.message, error 

Répondre

0

Je l'ai résolu dans Dexie 1.3.2 en gardant une référence à l'instance de version et entourant l'affectation pour elle avec un try-catch -bloc:

try 
    version_instance = @db.version db_version 
catch error 
    if error.message is 'Cannot add version when database is open' 
    @db.close() 
    version_instance = @db.version db_version