以前紹介した Dexie.js を使って IndexedDB
からデータを取得しようとしたところ、タイトルのようなエラーが発生しました。
初回起動だったためデータが存在せず、それが原因かとも思ったのですが、別の箇所で同じようにデータが存在しないタイミングでデータ取得処理を実行した時には発生しませんでした。
エラー全文は下記のとおりです。
Failed to execute ‘transaction’ on ‘IDBDatabase’: One of the specified object stores was not found.
NotFoundError: Failed to execute ‘transaction’ on ‘IDBDatabase’: One of the specified object stores was not found.
「「IDBDatabase」で「トランザクション」を実行できませんでした:指定されたオブジェクトストアの1つが見つかりませんでした。NotFoundError:「IDBDatabase」で「transaction」を実行できませんでした:指定されたオブジェクトストアの1つが見つかりませんでした。」とのことですが…いまいちよく分かりません…。
検索してみましたが、有用な情報にはたどり着けず…。
試しにコードを色々変更してみたり、どの箇所でエラーが発生するかなどを調査した結果、データベース名を変更し、新しいデータベースとして宣言したところエラーが発生しなくなりました!
サンプルコードは下記のとおりです。
const db = new Dexie('myVideo'); db.version(1).stores({ videos: 'name', }); const file = await db.videos.get([キー名]);
上記コードの 1行目の new Dexie()
で指定しているデータベース名を変更しました。
そう言えば、他の箇所からコピー&ペーストする際に、データベース名をそのままにしてしまっておりました…。
皆様もコピペする際にはお気を付けください…。
以上、Electron で IndexedDB からデータを取得する際に、「Failed to execute ‘transaction’ on ‘IDBDatabase’: One of the specified object stores was not found.」エラーが発生する時の対処方法についてでした。