【发布时间】:2011-02-15 14:33:58
【问题描述】:
我目前在 iTunes 应用商店中有一个 iPhone 应用,它使用 SQLite 数据库作为数据存储。用户可以将应用程序与 Web 服务同步,然后将返回的数据存储在 SQLite 数据库中。用户还可以将新项目插入数据库并将其更改同步回网络服务。
当打开到应用程序的本地数据库的连接时,代码会检查以确认数据库文件是否存在于“Documents”文件夹中,如果不存在,则通过将数据库从“Resources”文件夹复制到“文档”文件夹。
我必须发布应用程序的更新。更新包含数据库架构更改(新表、列等)。根据我的阅读,“文档”目录中的文件将在应用程序更新时保留,这意味着现有数据库在更新后仍将完好无损。
我的问题是,如何用我更新的数据库替换现有的数据库,有没有办法在不丢失现有数据库中的数据的情况下这样做?是否可以使用某种“更新后首次运行”事件来进行数据库更新,或者我是否必须对现有数据库进行某种检查(查找新列或表),如果我的检查失败手动替换/更新数据库?
谢谢!
【问题讨论】:
-
查看此链接以获取 sqlite 包装器,它使 sqlite 操作更容易 - github.com/ccgus/fmdb
标签: iphone objective-c sqlite