【问题标题】:Fill CoreData with a large SQL database使用大型 SQL 数据库填充 CoreData
【发布时间】:2023-04-09 17:13:01
【问题描述】:

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

或者有没有更好的方法可以有效地将大型数据集导入 CoreData 存储?

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

我想这样做的原因是因为我正在构建一个 iOS 应用程序,该应用程序需要从包含大多数英语单词的持久存储中读取。除了这个词,每一行还包含一些其他的东西。应用永远不需要写入数据库,只需从中读取,但需要非常快速地读取。

Apple's docs 看来,这是不推荐的(或者可能是不可能的):“不要使用本机 SQLite API 操作现有的 Core Data 创建的 SQLite 存储”

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

【问题讨论】:

  • Firebase 会是更好的选择吗?我可以将 sql 文件转换为 JSON,然后轻松将 JSON 上传到 Firebase。我只需要学习如何将 firebase 数据库下载到设备上,以便离线工作。

标签: mysql sqlite core-data


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多