Pages

2012年3月16日金曜日

CoreData Migration で勘違い

お恥ずかしい話ですが、私、CoreDataのMigrationについて大きく勘違いしておりました。

たとえば、CoreDataのデータモデルのモデルバージョンが1、2、3と3バージョンあるとします。

開発の時間軸で考えると最初に開発してモデルバージョンが1。その後何らかの変更を加えてバージョン2のモデルを作る。そのときには当然、バージョン1からバージョン2のマッピングモデルを作りますよね。

ここまでは、まぁ普通です。

次に、さらにバージョン2にも変更が必要になったので、モデルバージョン3を作ります。このときバージョン2からバージョン3のマッピングモデルを作ります。

これでシステムが自動的に二段階更新をやってくれるのかな?なんて思っていたんです。でもそうではないようです。


モデルバージョン3を作ったら、2から3へのマッピングモデルと1から3へのマッピングモデルが必要です。前に作った1から2のマッピングモデルはもはや必要なし。

開発者側の怠慢というか楽しようという意識からすれば、1から2はもう作ったんだし、今回は2から3でいいでしょうってなもんでしたが、処理の効率から考えれば当然、1から3、もしくは、2から3とする方が効率が良いわけで、ちょっと考えれば分かることなんですが。

とにかく勘違いが解けてよかったです。