1

我正在使用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
4

1 回答 1

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
于 2016-03-09T14:13:33.377 回答