1

Core Dataにさまざまなエンティティが組み込まれているアプリがあります。これはすばらしいことですが、データベースを構築できるように(研究目的で)そのデータを抽出したいと思います。

iPhoneからCoreDataエンティティをエクスポートするための迅速で簡単な方法は何ですか?

私は周りを探していましたが、たくさんの提案があるようですが、すべてがかなり乱雑に見えます。手動でコードを記述してCSVとしてエクスポートし始めましたが、それは大変な作業であり、データベースを変更する場合は、それに合わせてCSVエクスポーターを変更する必要があります。

それを行うには本当に簡単な方法があるはずですよね?

SQLiteファイルを取得して他のファイルにインポートできますか?AppleはCoreDataをエクスポートするためのAPIを提供していませんか?

編集:Webサービスにエクスポートするような特別なものは必要ありません。データをエクスポートして、デスクトップ、おそらくAccess、Excelなどで管理できるようにしたいだけです。クレイジーな量のデータになることはなく、これはほとんど一時的な解決策です。

EDIT2:このプログラムを見つけました:http ://sourceforge.net/projects/sqlitebrowser/ それはあなたが必要とするほとんどすべてです。CSVエクスポートが含まれます。

みんな助けてくれてありがとう

4

1 に答える 1

2

いいえ、AppleはデータをエクスポートするためのAPIを特別に提供していません。既存のAPIを使用できますが、関係をエクスポートしてデータをフォーマットするには、すべての作業を自分で行う必要があります。

迅速で汚い解決策が必要な場合は、データベースファイルをコピーsqlite3し、Macでコマンドを使用してデータを抽出します。データベースファイルの名前が。であるとしますstore.db。次のコマンドを使用して、そのスキーマを確認できます。

sqlite3 store.db .schema

どのテーブルがどのエンティティと関係に対応しているかを理解するのは非常に簡単です。たとえば、という名前のエンティティがありLibraryEntryます。これは、次の表で表されます。

CREATE TABLE ZLIBRARYENTRY ( Z_PK INTEGER PRIMARY KEY, Z_ENT INTEGER, Z_OPT INTEGER, ZGRIDHEIGHT INTEGER, ZGRIDWIDTH INTEGER, ZDYNAMICDATARELATION INTEGER, ZORIGINALDATARELATION INTEGER, ZTHUMBNAILDATARELATION INTEGER, ZDATE TIMESTAMP, ZAUTHOR VARCHAR, ZSIGNATURE VARCHAR, ZTITLE VARCHAR );

で始まる列Z_は、CoreDataの内部メタデータです。それらのうち、あなたはおそらく気にするだけですZ_PK。他の列(アンダースコアで始まるZがアンダースコアはない)は、の属性ですLibraryEntry

テーブルをCSVでダンプするには、次のようなコマンドを使用します。

sqlite3 -csv store.db 'select * from zentity' > entity.csv

ヘッダー行が必要な場合は、次の-headerようにフラグを使用します。

sqlite3 -header -csv store.db 'select * from zentity' > entity.csv
于 2013-02-27T18:48:18.983 に答える