1

CoreData モデル バージョンにさまざまな重大なスキーマ変更があります。ローカル スキーマは単にネットワーク データのキャッシュであるため、sqlite ファイルを削除して、このバージョンの iOS アプリの再ダウンロードを強制することに非常に満足しています。

でも...

DB に、ユーザーによって書き込まれ、失われてはならないエンティティが 1 つあります。

アプリの新しいバージョンでは、この揮発性データは CoreData ストアに書き込まれなくなりましたが、ファイル システムに記録されます。

(たとえば) アプリのバージョン 2.0.1 が v1 スキーマを使用してデータをコピーするように、段階的に作業を進めていますが、スキーマの重大な変更はなく、アプリのバージョン 2.0.2 はスキーマを変更して DB を削除します。データが削除されたことを認識して安全ですが、アプリストアの更新の仕組みにより、ユーザーが .0-.1-.2 から移行することを保証することはできません。.0 から .2 に直行し、コア データ ストアを開こうとすると重大な変更が発生する可能性があります。

ご意見、ご指摘、ご提案をお待ちしております。

更新: 移行を「偽造」するのがよいかどうか疑問に思っています。揮発性データ以外のすべてを無視し、実際には移行せず、ファイルシステムに書き込むだけのカスタム移行ポリシー。それが実行されると、ファイルシステムに揮発性データがあり、新しいスキーマに基づく空の DB があります。

4

1 に答える 1