我想在我的核心数据中导入数据库模式,我是一个基于视图的应用程序和手动添加的核心数据。
我创建了一个新的数据模型,现在我想导入我在 .sql 文件中获得的数据库架构,是否可以导入该架构或者我需要手动创建所有表?
请注意,Core Data 是一个对象图持久性框架,而不是数据库本身。这可能是微妙的区别,但当您考虑尝试做您所提议的事情时,这是一个重要的区别。
虽然 Core Data 可以由 sqlite 存储支持,但在大多数情况下,实现细节是不透明的。在任何情况下,您都无法将您的反向移植sql
到 Core Data 模型。
我的建议是让您决定 Core Data 是否适合您,在这种情况下,您应该通过在模型构建器工具中创建实体和关系来使用它,或者,如果您热衷于保留数据库模式,那么查看原始 sqlite 周围的 Cocoa 包装器,例如 Gus Mueller 的FMDB
看看核心数据编程指南。常见问题解答中有此 Q/A:
如何将现有的 SQLite 数据库与 Core Data 一起使用?
你没有。尽管 Core Data 支持 SQLite 作为其持久存储类型之一,但数据库格式是私有的。您不能使用原生 SQLite API 创建 SQLite 数据库并将其直接与 Core Data 一起使用(也不应该使用原生 SQLite API 操作现有的 Core Data SQLite 存储)。如果您有现有的 SQLite 数据库,则需要将其导入核心数据存储(请参阅“高效导入数据”)。