2017-10-07 11 views
0

のIndexedDB、dexieにdaynamicallyする新しいテーブルを追加します。何の問題もなく私は1つのコレクションを定義し

db = new Dexie('db'); 
db.version(1).stores(
    {test : '++id,title'} 
); 

をしかし、私は、以下の二つの方法によって「DB」データベースに新しいテーブルを追加する場合、両方に障害が発生していると変化は起こらない。

//without version change 
db = new Dexie('db'); 
db.version(1).stores(
    {test2 : '++id,title'} 
); 

又は

//with version change 
db = new Dexie('db'); 
db.version(2).stores(
    {test2 : '++id,title'} 
); 

答えて

0

第二の代替案は正しいものです。しかし、バージョン1のコードも同様に、as described in the docsにしてください。しかし、すでにバージョン2またはバージョン3を使用してテスト済みの場合は、間違ってしまうことがあります。同じクライアントで同じバージョンを変更することはできません。

2番目の方法が失敗した場合は、コンソールログで説明メッセージを確認してください。テスト中に既に2を超えるバージョンを追加している可能性があります。もしそうなら、あなたが使用されているものよりも高い値にバージョンをインクリメント、または

Dexie.delete('db').then(()=>db.open()) 

を行うことのいずれかが必要になる場合があります上記の行は、データベースを削除してから再作成します。

+0

私はデータベースに新しいテーブルを追加し、既存のテーブルでは変更したくないことに注意してください。バージョン1のtest2テーブルはありません。 –

関連する問題