IndexedDB数据库不会持久存在于Chrome应用中

时间:2013-06-28 03:03:41

标签: html5 google-chrome google-chrome-extension indexeddb google-chrome-app

我在安装时在我的应用后台脚本中创建了一个数据库:

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”。

在关闭计算机并稍后再次启动之后,这次当我尝试从数据库中读取说对象存储不存在且数据库没有对象存储时,我收到错误!

这不是第一次发生这种情况。其他人也有遇到同样的状况吗?可以做些什么来使其在更新和重新启动时保持不变?

编辑更新了删除自定义类的代码

0 个答案:

没有答案