5

私は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 で多くの助けが得られません。

編集: 「問題/バグ/手順を発見しましたか?」バージョンを変更する前に何も追加しない場合、この問題は発生しませんが、これが通常の手順であるかどうかを誰かが知っていますか?

したがって、これが手順である場合、ジェネリックメソッドを使用して動的にテーブルを追加することはできません。最初にすべての宣言を行い、次に値を追加します。値を追加した後にテーブルを追加する可能性はありますか?

もう一度編集... 別のデータベースを作成できることに気付きました。結果を掲載します。しかし、この問題に関する情報は大歓迎です:)

もう一度編集...私は動的に別のデータベースを作成し、誰もが満足しています!!

4

1 に答える 1