次のような CoreData モデルがあります。
- 抽象エンティティ
- エンティティ 1
- エンティティ 2
- エンティティ 3
「抽象エンティティ」は、階層の最上位エンティティです。「エンティティ 1」と「エンティティ 2」は、「抽象エンティティ」のピア サブエンティティです。「Entity 3」は「Entity 2」のサブエンティティです。
アプリは App Store で公開されているため、モデルを修正する場合は既存のデータをすべて保持する必要があります。残念ながら、モデル階層を次のように再配置する必要があります。
- 抽象エンティティ
- エンティティ 2
- エンティティ 3
- エンティティ 1
- エンティティ 3
- エンティティ 2
新しい「Entity 4」エンティティを作成し、すべての「Entity 1」データを「Entity 4」形式に変換する関数を作成することを伴わずに、これを達成する方法はありますか? 次のような下品なヒエラルキーにはなりたくありません。
- 抽象エンティティ
- エンティティ 1
- エンティティ 2
- エンティティ 3
- エンティティ 4
- エンティティ 3
上記を回避するために私が思いついた唯一の方法は、必要なすべてのプロパティをエンティティ 2 と 3 から 1 にコピーし、階層の問題を完全に無視することです。これは悪い解決策です。