javascript - Dexie - 数据库打开时无法添加版本

标签 javascript coffeescript indexeddb dexie

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

最佳答案

我在 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

关于javascript - Dexie - 数据库打开时无法添加版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35892438/

相关文章:

javascript - 使用 js-ipfs 在浏览器中发布的 IPNS 名称不会在网关或本地节点上解析

javascript - 尝试创建一个 select2 包装器

coffeescript - 在 CoffeeScript 中,如何使用变量作为哈希中的键?

Javascript : accurate CSS TranslateX ( position ) taking Transform Scale into account

google-chrome - 为什么空的IndexedDB 仍然占用空间?

javascript - D3 TypeError : link. exit is not a function link.exit().remove();我究竟做错了什么?

javascript - React search(filter)函数,添加参数进行搜索

javascript - 从 Node.js 函数回调获取 MySQL 结果的正确方法?

javascript - 复合索引/子数组搜索

html - 索引数据库性能