浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

【Electron】IndexedDBからデータ取得する時「Failed to execute ‘transaction’ on ‘IDBDatabase’: One of the specified object stores was not found.」エラーが発生する

以前紹介した 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.」エラーが発生する時の対処方法についてでした。

  • この記事いいね! (0)