【发布时间】:2011-06-24 12:38:13
【问题描述】:
我有一个使用 CoreData 进行存储的 iPhone 应用程序。
持久存储(一个 sqlite3 数据库)附带了几个填充了数据的实体。这些数据用于在应用程序中创建各种菜单和选项。我们将这些数据称为“应用程序数据”。
应用程序使用其他几个实体来存储用户数据。
虽然架构很少更改,但我经常需要更新应用程序数据以向用户提供新选项。
我有一个 MacRuby 脚本,它从一堆 CSV 文件中获取新数据并更新我的开发机器上的 sqlite3 数据库,但我不确定用新应用程序数据更新现有已部署应用程序的最佳方法是什么(请记住,没有架构更改)而不影响用户数据。
有什么想法吗?
_更新_
经过一番思考,我开始将应用程序设置为从包含新数据的 Web 服务器下载新的 sqlite3 文件。收到后,我的应用程序会将更新 sqlite3 文件中的数据复制到应用程序的工作数据库文件中,完全替换应用程序数据,但不会触及用户数据。
确定是否已应用更新的机制可以使用具有单个数据库版本号的文本文件,应用会定期下载该文件。如果这个数字大于上一次更新的数字(存储在本地),则继续更新,否则忽略。
【问题讨论】:
-
嗨,Futureshocked,你找到答案了吗?我也面临同样的问题。我有一个名为 DefaultValues 的实体,我想在不触及其他实体中存在的用户数据的情况下使用少量新记录进行更新。不知道我到底要做什么??
-
我还没有完成这个,但是我打算遵循的策略是将新数据捆绑到一个 sqlite3 文件中(虽然这无关紧要,它可能只是一个简单的 json 文件) ,通过应用程序将其下载到 iPhone 上,然后打开并根据需要将数据复制到应用程序自己的数据库中。希望这可以帮助。我已经实现了在手机上下载 sqlite3 文件的部分,然后时间不足:-(
标签: iphone core-data data-migration