【问题标题】:CoreData migration without Model versioning OR reading sqlite wal file没有模型版本控制或读取 sqlite wal 文件的 CoreData 迁移
【发布时间】:2015-01-26 03:28:39
【问题描述】:

我有一个奇怪的问题,因为我忘记更改核心数据模型版本以更新我的应用程序。现在我在 AppStore 上有一个应用程序,可以说是 1.0 版。对于 1.1 版,我更改了核心数据模型,但没有创建它的第二个版本。我正在使用 Magical Records,它会在发生冲突时删除以前的 Sqlite 文件。 我的应用程序在 iOS 7 上,它使用日志模式(提前写日志,wal 文件),我不能使用我的旧 sqlite 文件来获取数据。 出于某种原因,我无法推送更新 1.x,其中我将所有数据保存在其他地方并在 2.0 上备份,当发生冲突时。

问题是我不想丢失我以前的数据。怎么办?

【问题讨论】:

    标签: ios sqlite core-data magicalrecord core-data-migration


    【解决方案1】:

    有两种方法可以解决这个问题:

    1. 从 AppStore 中删除 1.1 以避免对现有用户进行不必要的更新。添加缺失的模型版本(我希望您使用过 SVN、GIT 或任何其他源版本控制工具?),理论上您可以手动还原所有更改以使模型看起来与 1.0 相同,然后为 1.1 创建版本。提交支持从 1.0 迁移的新应用版本。
    2. 如上所述从 AppStore 中删除 1.1。使用 FMDB 或任何其他直接访问 sqlite 的框架从旧 SQLite 存储中手动迁移数据。通过 SQL 读取所有数据并使用 CoreData 方法将它们插入到 CoreData 存储中。

    【讨论】:

      猜你喜欢
      • 2011-09-14
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      • 2016-01-15
      • 1970-01-01
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多