私はIndexedDBから始めており、Dexie.js https://github.com/dfahlander/Dexie.jsを使用しているホイールを再発明しないようにしています
データベースを作成し、データを追加しました。現在、CSV を取得して別のテーブルにデータベースを設定する汎用関数を作成しています。
だから、多かれ少なかれ私のコードは
// Creation and populate database and first table
var db = new Dexie("database");
db.version(1).stores({table1: '++id, name'});
db.table1.add({name: 'hello'});
ここまでは大丈夫
さて、ajaxリクエスト成功で
db.close();
db.version(2).stores({table2: '++id, name'});
db.open();
db.table2.add({name: 'hello'});
このコードを初めて実行するときはすべて問題ありませんが、次回はこのエラーが発生します
VersionError The operation failed because the stored database is a
higher version than the version requested.
データベースを削除してコードを再度実行すると、初回のみ正常に動作します。
何か案が?私はあまり IndexedDB バージョンの方法が好きではありません。イライラするように見え、Net Thanks で多くの助けが得られません。
編集: 「問題/バグ/手順を発見しましたか?」バージョンを変更する前に何も追加しない場合、この問題は発生しませんが、これが通常の手順であるかどうかを誰かが知っていますか?
したがって、これが手順である場合、ジェネリックメソッドを使用して動的にテーブルを追加することはできません。最初にすべての宣言を行い、次に値を追加します。値を追加した後にテーブルを追加する可能性はありますか?
もう一度編集... 別のデータベースを作成できることに気付きました。結果を掲載します。しかし、この問題に関する情報は大歓迎です:)
もう一度編集...私は動的に別のデータベースを作成し、誰もが満足しています!!