将普通的sqlite3数据库迁移到核心数据?

时间:2010-11-09 07:06:05

标签: core-data migration sqlite ios4

我有一个正常的预填充数据库。我想将其迁移到我的应用程序的核心数据。实现这一目标的最佳方法是什么?顺便说一句,我做了这些事情,从apple的sample.exported表sql复制recipes.sqlite数据库。根据核心数据表列重命名列名称(类似于此 - 使用Z_PK的id“主键”)。用我的价值观填满了那张桌子。但我无法理解列名Z_ENT和Z_OPT。是否有人知道如何轻松地将预先填充的sqlite3数据库迁移到核心数据。

由于

2 个答案:

答案 0 :(得分:6)

不要尝试手动创建Core Data SQLite文件。这是一条失败的道路;每一次。

如果您有预先存在的SQLite文件,请使用直接的SQLite工具访问它并将其导入核心数据 使用 核心数据。将数据存储在Core Data堆栈中后,保存该文件,然后使用生成的SQLite文件。

Core Data SQLite文件的内部结构设计为不透明,不应进行逆向工程。 Apple不保证文件结构保持不变。自Core Data发布以来,他们已经多次改变了它。

导入

要进行导入,它就像任何其他文件一样:

  1. 你站在核心数据堆栈上。
  2. 您遍历非核心数据数据库中的每个表和每一行。
  3. 为每行创建一个新的Core Data对象。
  4. 将旧行中的数据插入新对象。

答案 1 :(得分:1)

尝试使用以下工具将Standard SQLite迁移到Core Data Compatible Sqlite

https://github.com/tapasya/Sqlite2CoreData