CoreData for storageを使用しているiPhoneアプリケーションがあります。iPhone CoreDataデータのマイグレーション
永続ストア(sqlite3データベース)には、データが移入された複数のエンティティが含まれています。これらのデータは、アプリケーション内のさまざまなメニューとオプションを作成するために使用されます。これらのデータを「アプリケーションデータ」と呼ぶことにしましょう。
その他のエンティティは、アプリケーションによってユーザーデータを格納するために使用されます。
スキーマはほとんど変更されませんが、アプリケーションデータを更新してユーザーに新しいオプションを提供する必要があることがよくあります。
大量のCSVファイルから新しいデータを取得し、開発マシンでsqlite3データベースを更新するMacRubyスクリプトがありますが、既存のデプロイ済みアプリケーションを新しいアプリケーションデータで更新するにはどうすればよいか分かりません(スキーマの変更がないことを覚えておいてください)。
アイデア?
_ 更新 _
思考のビットの後、私は新しいデータが含まれているウェブサーバから新しいsqlite3のファイルをダウンロードするためのアプリケーションを設定することを志向取得しています。受信したアプリケーションは、更新データsqlite3ファイルのデータをアプリケーションの作業データベースファイルにコピーし、アプリケーションデータを完全に置き換えますが、ユーザーデータには触れません。
更新プログラムが適用されているかどうかを判断するメカニズムでは、アプリケーションが定期的にダウンロードする単一のデータベースバージョン番号を持つテキストファイルを使用できます。この番号が前回の更新の番号(ローカルに保存されている番号)より大きい場合は更新が進み、それ以外の場合は無視されます。
こんにちはFutureshocked、答えを見つけましたか?私も同じ問題に直面しています。 DefaultValuesというエンティティがあります。これは、他のエンティティに存在するユーザーデータに触れることなく、いくつかの新しいレコードで更新したいものです。正確に私は何をしなければならないのか分からないのですか? –
私はこれをまだ終わらせていませんが、私が従う予定の戦略は、新しいデータをsqlite3ファイルにバンドルすることです(これは問題ではありませんが、単純なjsonファイルでもかまいません)。アプリで開くと、必要に応じてアプリ独自のデータベースにデータがコピーされます。お役に立てれば。私は携帯電話でsqlite3ファイルをダウンロードする部分を実装して、時間が足りません:-( – futureshocked