【问题标题】:Dexie - Cannot add version when database is openDexie - 数据库打开时无法添加版本
【发布时间】:2016-06-23 21:04:02
【问题描述】:

我正在使用Dexie.js,有时在尝试访问数据库时收到错误“无法在数据库打开时添加版本”。

是否有处理此错误的最佳实践?在这种情况下我需要关闭数据库并尝试重新打开它吗?

我的代码是这样的(用 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

【问题讨论】:

    标签: javascript coffeescript indexeddb dexie


    【解决方案1】:

    我在 Dexie 1.3.2 中解决了这个问题,方法是保留对版本实例的引用并用 try-catch-block 围绕它的分配:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多