Javascript 将存储添加到已打开的IndexedDB
在Javascript 将存储添加到已打开的IndexedDB,javascript,html,indexeddb,Javascript,Html,Indexeddb,在打开并通过onupgradeneeded后,是否有办法在索引数据库中创建存储 我试过: var store = db.createObjectStore('blah', {keyPath: "id", autoIncrement:true}); 获取此错误: InvalidStateError:尝试对不允许突变的数据库执行突变操作。 您试过了吗 var-store=db.createObjectStore(…) 我的意思是你应该去掉“obj”这个词 你可以看看这个例子我同意Josh的观点,你
打开并通过onupgradeneeded
后,是否有办法在索引数据库中创建存储
我试过:
var store = db.createObjectStore('blah', {keyPath: "id", autoIncrement:true});
获取此错误:
InvalidStateError:尝试对不允许突变的数据库执行突变操作。
您试过了吗
var-store=db.createObjectStore(…)
我的意思是你应该去掉“obj”这个词
你可以看看这个例子我同意Josh的观点,你需要澄清你的问题
我建议你尝试另一种方法。删除数据库并创建一个新数据库
var request = window.indexedDB.deleteDatabase('somedb');
request.onerror = function(event) {
console.log('Error', event);
}
request.onsuccess = function(event){
console.log('Success', event);
//recreate database
createNewDB();
}
注意
您需要关闭()
连接,然后才能删除数据库并创建一个新数据库。是否尝试创建一个已经存在的对象存储?使用db.objectStoreNames.contains('object-store-name')
进行检查。您需要澄清您的问题。例如,“通过OnupgradeRequired”这句话不是正确的英语,也没有技术意义。不确定你想让我在这里做什么?你让我尝试删除一个不存在的存储?哦,不,这不是问题所在,这只是我的方法设置方式,我应该删除db.obj并放入db。对于这个问题,我猜一旦完成了onupgradeneeded方法,你就不能向数据库添加表了。
var request = window.indexedDB.deleteDatabase('somedb');
request.onerror = function(event) {
console.log('Error', event);
}
request.onsuccess = function(event){
console.log('Success', event);
//recreate database
createNewDB();
}