【问题标题】:What's the quick and painless way to export CoreData?导出 CoreData 的快速且轻松的方法是什么?
【发布时间】:2013-02-27 18:33:59
【问题描述】:

我有一个应用程序,其中包含在 Core Data 中构建的各种实体,这很棒,但我想提取这些数据,以便我可以构建一个数据库(用于研究目的)。

从 iPhone 导出 CoreData 实体的快速且轻松的方法是什么?

我一直在四处寻找,似乎有很多建议,一切看起来都很混乱。我开始手动编写代码以将其导出为 CSV,但工作量很大,如果我更改我的数据库,我需要更改 CSV 导出器以匹配。

一定有一个非常简单的方法,不是吗?

你能把 SQLite 文件导入别的东西吗? Apple 不提供任何 API 来导出 CoreData 吗?

编辑:不需要像导出到 Web 服务这样的花哨的东西。我只想导出数据,这样我就可以在桌面上管理它,也许在 Access、Excel 等类似的东西中。这不会是一个疯狂的数据量,这主要是一个临时解决方案。

EDIT2:找到这个程序:http://sourceforge.net/projects/sqlitebrowser/ 这几乎是你需要的一切。包括 CSV 导出。

感谢大家的帮助

【问题讨论】:

  • 导出到哪里?到网络服务?
  • 列出您认为对您来说太混乱的建议,以免读者重新提出建议。
  • 也许只是复制 SQLite3 数据库文件?
  • 复制到哪里? (如哪些程序会读取该文件?)

标签: iphone objective-c database core-data export


【解决方案1】:

不,Apple 不提供任何专门用于导出数据的 API。您可以使用现有的 API,但您必须自己完成所有工作来导出关系和格式化数据。

如果您想要一个快速而肮脏的解决方案,只需复制数据库文件并在您的 Mac 上使用sqlite3 命令来提取数据。假设数据库文件名为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_ 开头的列是Core Data 的内部元数据。其中,您可能只关心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

【讨论】:

  • 谢谢,我试试看。
猜你喜欢
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多