【发布时间】:2012-06-12 11:52:22
【问题描述】:
我在我的应用程序中使用 Sqlite 数据库,
我已经将我的应用程序上传到 Appstore,
我对我的数据库进行了一些更改并上传了应用程序的第二个版本。现在任何用户都安装应用程序。有什么方法可以在不卸载以前版本的应用程序的情况下更改数据库?
我的 sqlite 数据库文件存储在 Document 目录文件夹中。
我该怎么做?
【问题讨论】:
标签: iphone objective-c cocoa-touch ios4
我在我的应用程序中使用 Sqlite 数据库,
我已经将我的应用程序上传到 Appstore,
我对我的数据库进行了一些更改并上传了应用程序的第二个版本。现在任何用户都安装应用程序。有什么方法可以在不卸载以前版本的应用程序的情况下更改数据库?
我的 sqlite 数据库文件存储在 Document 目录文件夹中。
我该怎么做?
【问题讨论】:
标签: iphone objective-c cocoa-touch ios4
您将需要执行数据库迁移。这意味着您的应用的更新版本应检查旧数据库是否存在。
如果找到,它应该执行所有必要的ALTER TABLE ... 或CREATE TABLE ... 等语句,以将数据库更新到新架构。
根据您所做更改的数量和类型,这对您来说可能容易或困难。但只要数据在那里,您就应该能够迁移它,即使您完全重新设计了数据库架构。
我强烈建议您采用 TDD 方法,或者至少编写一些单元测试来测试迁移过程。您最不希望用户丢失他们的数据。
【讨论】:
是的,这在核心数据中是可能的。这个概念被称为核心数据迁移。
在您的情况下,您可以手动执行此操作。只需找出修改了哪个数据表并检查您的版本并更新它。
【讨论】: