0

インストール時にアプリのバックグラウンド スクリプトでデータベースを作成しました。

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」と呼ばれる他のメソッドは使用されていません。

コンピューターをシャットダウンし、後で再起動した後、今度はデータベースから読み取ろうとすると、オブジェクト ストアが存在せず、データベースにオブジェクト ストアがないというエラーが表示されます。

これが起こったのはこれが初めてではありません。これは他の誰かに起こりますか?更新や再起動後も永続化するにはどうすればよいですか?

編集私のカスタムクラスを削除するためにコードを更新しました

4

0 に答える 0