10の異なるエンティティを管理するCoreDataアプリがあります。それらは基本的にすべて同じであり、同じ属性を持っています。(NSStringsとUIImage)これにより、10個のテーブルを含む1つのsqliteDBが作成されます。
Collection A table
-item with attributes xyz
-item with attributes xyz
-item with attributes xyz
Collection B table
-item with attributes xyz
-item with attributes xyz
-item with attributes xyz
etc, etc
私は今、これがそれを行うのに悪い方法であったことに気づきました。最終的には、10種類のViewControllerと10種類のFRCになります。「collectionX」属性を持つ1つのテーブルにすべてを含める必要がありました。このようにして、すべてのコレクションアイテムを1つのテーブルにまとめ、ユーザーがどのコレクションにいるかに応じて、「collectionX」属性を使用して述語を使用してFRCからそれらのアイテムを返すことができます。
私がやりたいのは、すべてを1つのテーブルに移行し、コレクション名の属性を追加することです。
Collection table
-item from collection A (w/new "collectionX" attribute filled in as "collectionA")
-item from collection A (w/new "collectionX" attribute filled in as "collectionA")
-item from collection A (w/new "collectionX" attribute filled in as "collectionA")
-item from collection B (w/new "collectionX" attribute filled in as "collectionB")
-item from collection B (w/new "collectionX" attribute filled in as "collectionB")
-item from collection B (w/new "collectionX" attribute filled in as "collectionB")
etc, etc
したがって、軽量の移行では、10個のエンティティすべてにアクセスして、新しい「collectionX」属性を追加し、関連するコレクションの文字列を入力できるはずです。
ここで難しい部分です...各テーブルのすべてのエントリを取得し、それらをすべて新しいものにコピーして、古い10個のテーブルを削除するにはどうすればよいですか?