1

私のアプリケーションは Core-data を使用しています。現在、新しいバージョンのリリースに伴い、データベース構造を変更する必要があります。これはバージョン管理によって行われることは知っていますが、私が見つけたすべてのチュートリアルはドキュメントベースのアプリケーション用ではなく、ある時点で行き詰まります。ドキュメントがデータベース自体であり、任意の名前を付けることができるドキュメントベースのアプリケーションでバージョン管理をどのように実装できますか?

ありがとう

- -追加情報 - -

私がする必要があるのは、アプリケーションを開き、「開く」ボタンを押して、ファイルシステムから NSManagedDocument を選択することです。それは私のデータベースです(任意の名前を付けることができます)開いたときに古い構造であることが検出された場合、その構造を現在の構造に更新する必要があります。(1列追加)

4

1 に答える 1

2

SQLite ストアを にラップしているという事実はNSManagedDocument、モデルのバージョン管理手順とは無関係であるように私には思えます。

コードに永続ストア オプションを追加し、Xcode に新しいモデル バージョンを追加するだけです。

コア データ スタックを設定するとき、つまり、DB を含むドキュメントが選択された後、永続ストア コーディネーターを作成するときに、これらのオプションを永続ストアに追加する必要があります。

NSString * const NSMigratePersistentStoresAutomaticallyOption;
NSString * const NSInferMappingModelAutomaticallyOption;

これらのオプションの名前が示すように、ここから自動的に機能するはずです。実際の呼び出しは次のようになります。

[persistentStoreCoordinator 
   addPersistentStoreWithType:NSSQLiteStoreType
   configuration:@"Default"
   URL:fileURL 
   options:@{NSMigratePersistentStoresAutomaticallyOption : @(YES),
             NSInferMappingModelAutomaticallyOption       : @(YES)}
   error:&error];
于 2013-08-18T20:39:30.370 に答える