【发布时间】:2016-12-24 08:33:06
【问题描述】:
我从 IndexedDB 开始,而不是重新发明轮子我正在使用 Dexie.js https://github.com/dfahlander/Dexie.js
我创建了数据库,添加了数据,现在我正在创建一个通用函数,它获取 CSV 并将数据库填充到其他表中。
所以,我的代码或多或少是
// Creation and populate database and first table
var db = new Dexie("database");
db.version(1).stores({table1: '++id, name'});
db.table1.add({name: 'hello'});
到这里一切正常
现在,ajax 请求成功
db.close();
db.version(2).stores({table2: '++id, name'});
db.open();
db.table2.add({name: 'hello'});
第一次运行这段代码一切正常,但下次我得到这个错误
VersionError The operation failed because the stored database is a
higher version than the version requested.
如果我删除数据库并再次运行代码,只有第一次可以正常工作。
有什么想法吗?我不喜欢太多 IndexedDB 版本的方式,它看起来很令人沮丧,而且我在网络上没有得到很多帮助 谢谢。
编辑: 我发现了¿问题/错误/程序?如果我在任何版本修改之前不添加任何内容,我就没有这个问题,但是有人知道这是否是正常程序?
所以.. 如果这是我无法使用通用方法动态添加任何表格的过程。首先是所有声明,然后添加值。添加值后是否可以添加表格?
再次编辑...我刚刚意识到我可以创建另一个数据库。我会发布结果。但欢迎提供有关此问题的任何信息:)
再次编辑...我创建了另一个数据库,每个人都很高兴!
【问题讨论】:
标签: javascript database client indexeddb dexie