强制核心数据更新模型

Posted

技术标签:

【中文标题】强制核心数据更新模型【英文标题】:force core data update model 【发布时间】:2012-08-21 07:15:47 【问题描述】:

我创建了一个基于核心数据的应用程序,用户可以使用 Dropbox 备份和恢复数据库。

现在我已经更改了模型(新版本),为现有实体添加了几个属性并实现了轻量级迁移。

迁移工作正常,我的问题是当我恢复使用以前模型创建的数据库时。

如果我终止应用程序并重新启动轻量级迁移会更新数据库架构,但我想实现一种方法来强制将数据库架构更新到新模型而不终止应用程序。

有没有办法做到这一点?

谢谢, 最大

【问题讨论】:

你的意思是,你想在飞机上这样做? 是的。我想避免用户必须终止应用程序并重新启动。 那么您就不需要进行这些提取 - 只需存储变量即可。 【参考方案1】:

自动迁移通常发生在 addPersistentStoreWithType:configuration:URL:options:error: 中,通常由 appDelegate 调用。

你为什么不从你的持久化存储协调器中删除持久化存储( removePersistentStore:error: )并重新添加它;这应该会触发轻量级迁移

【讨论】:

以上是关于强制核心数据更新模型的主要内容,如果未能解决你的问题,请参考以下文章

iPhone:在应用程序的未来版本中更新核心数据模型

如何重新声明核心模型属性类型而不在 Hybris 中扩展它

更新了核心数据模型,没有新版本,如何修复?

使用实体框架核心模型时 WPF 数据网格未更新

更新核心数据模型后出错 - 无法识别的选择器发送到实例

核心数据模型版本控制和数据迁移