インストール時にアプリのバックグラウンド スクリプトでデータベースを作成しました。
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」と呼ばれる他のメソッドは使用されていません。
コンピューターをシャットダウンし、後で再起動した後、今度はデータベースから読み取ろうとすると、オブジェクト ストアが存在せず、データベースにオブジェクト ストアがないというエラーが表示されます。
これが起こったのはこれが初めてではありません。これは他の誰かに起こりますか?更新や再起動後も永続化するにはどうすればよいですか?
編集私のカスタムクラスを削除するためにコードを更新しました