我已经设置了一个app,它有预先填充的数据,可以将数据库复制到项目的商店。使用'CoreDataBooks示例'方法: Any way to pre populate core data?
对于应用程序升级,我想向数据库添加更多数据,但我不想更改现有数据库,因为新用户数据存储在那里?
最好的方法是什么?
我想我会创建一个新的版本化托管对象模型(如果模式中没有任何内容实际发生更改,我不确定是否可以添加新的MOM版本),对于新版本,请阅读当前运行的MOM版本,将MOM迁移到最新版本,并在代码中手动添加自当前运行的MOM版本以来尚未添加的新记录。
在代码中手动添加新记录似乎有点乏味。这听起来不错还是有更优雅的方式来添加这些新数据?
谢谢!
答案 0 :(得分:0)
如果您更改托管对象模型本身,例如添加新实体或更改现有属性,然后您需要使用迁移来更新现有持久性存储。有关迁移的详细信息,请参阅Core Data文档。
如果您只想添加新数据,那么除了“手动”之外,您别无选择。
请记住,Core Data是一个对象图管理系统,而不是数据库。对象“图形”是相互关联对象的“网络”,因此向图形添加数据的唯一方法是创建新对象并设置它们的关系。这不是低效的,只是它的工作方式。