用大型SQL数据库填充CoreData

时间:2018-10-14 03:31:43

标签: mysql sqlite core-data

我有一个要在CoreData中使用的大型18万行SQL(mysql)数据库。我可以使用Xcode创建SQLite数据库,然后使用SQLight客户端应用程序连接到该数据库,并使用mysql数据填充它吗?

还是有更好的方法将大型数据集有效导入CoreData存储?

它只会被填充一次,数据应该驻留在设备上。

之所以要这样做,是因为我正在构建一个iOS应用,该应用需要从包含大多数英语单词的持久性存储中读取。除单词外,每一行还将包含其他一些内容。该应用程序永远不需要写入数据库,只需从数据库中读取数据即可,但是它需要非常快地从数据库中读取数据。

Apple's docs中,似乎不建议这样做(或可能是不可能的):“请勿使用本机SQLite API操作现有的由Core Data创建的SQLite存储”

更新: 我当前正在处理的另一个选项是使用phpmyadmin(或其他工具)将MySQL数据库导出到json。然后将该json文件加载到项目中。当应用加载时(希望只是第一次使用),将数据从json文件推送到Core Data中。

1 个答案:

答案 0 :(得分:1)

如果您确实愿意,可以可以直接对Core Data进行反向工程并直接生成Core Data sqlite文件,但是正如您从Apple文档中引用的那样,这不是一个好主意。

简单地编写一个小的macOS命令行工具(其中包括与您的iOS应用程序相同的Core Data数据模型)将更容易。该工具将读取您的MySQL数据库并将其写入Core Data SQLite文件,然后随iOS应用程序一起提供。