2016-11-01 4 views
0

は、私は、インデックス付きの値のために、次のスキーマを持って言ってやるがいいのIndexedDBで各行はid, name, phoneNumberを持っているので、Dexie:データベースから索引付けされていない小道具を取り除く方法

はまた、私の友人オブジェクトは、非インデックス付きの小道具はphoneNumberと呼ばれています。

phoneNumberが不要になった場合は、既存の行からphoneNumberを削除する適切な方法はありますか? upgradeメソッド内で実行する必要がありますか?

答えて

1

私はdexieについてよく分かりませんが、一般的に言えば、この変更を行うためにアップグレード方法は使用しません。データベースのアップグレードは、通常、スキーマの変更のために予約されています。索引付けされていない非キー・プロパティーの変更は、スキーマの変更ではありません。

phoneNumberプロパティを削除する適切な方法は、フレンドオブジェクトストア内のすべてのフレンドを繰り返し処理し、各フレンドオブジェクトを読み取り、phoneNumberプロパティを削除して、フレンドオブジェクトをストアに書き戻すことです。

この変更を機能に加えて、それをアップグレードによって一連のマイグレーション関数呼び出しに追加できますが、これは単なる主観的なものです。私はあなたのアプリケーションがこれを行うためにデータベースのバージョンを変更する必要があるようにコード化されている場合にのみ行うことをお勧めします。しかし、ここでは、アプリケーション自体のバージョン変更のように聞こえます。これはデータベースのバージョンには影響しません。だから、これはあなたのアプリのバージョン変更ハンドラの移行機能に縛られるべきです。

関連する問題