我在安装时在应用程序的后台脚本中创建了一个数据库:
chrome.runtime.onInstalled.addListener(
function(details)
{
if ( details.reason === "install" )
{
...elided opening database...
request.onupgradeneeded: function(event)
{
console.log( "Upgrading" );
var database = event.target.result;
var transaction = database.transaction;
transaction.onerror = function(event) { console.log( "trans error" ); };
transaction.oncomplete = function(event) { console.log( "trans complete" ); };
transaction.onabort = function(event) { console.log( "trans aborted" ); };
var store = database.createObjectStore( "mystore", { keyPath: "id", autoIncrement: true } );
console.log( "created store" );
}
}
}
);
这非常有效。然后我将数据放入存储中并再次读取。然后我更改了我的应用程序中的一些其他代码并再次更新(大约 4-5 次),但从未更改数据库代码或结构。没有其他称为“onupgradeneeded”的方法。
关闭计算机并稍后再次启动后,这一次当我尝试从数据库中读取说对象存储不存在并且数据库没有对象存储时出现错误!
这不是第一次发生这种情况。这在别人身上发生过吗?可以做些什么来使它在更新和重新启动时持续存在?
编辑更新代码以删除我的自定义类