考虑一个SQL应用程序的SQLite数据库,其中包含一些“文档”作为模板。用户也可以添加他自己的模板。更新用于iphone的sqlite数据库
我想更新程序和数据库。有没有机会这样做而不覆盖用户的数据?
我已经考虑过两个不同的数据库,但由于这是开销,我想避免这个选项。
如何在不覆盖用户数据的情况下做到这一点?
考虑一个SQL应用程序的SQLite数据库,其中包含一些“文档”作为模板。用户也可以添加他自己的模板。更新用于iphone的sqlite数据库
我想更新程序和数据库。有没有机会这样做而不覆盖用户的数据?
我已经考虑过两个不同的数据库,但由于这是开销,我想避免这个选项。
如何在不覆盖用户数据的情况下做到这一点?
您可以让应用程序在运行时检查数据库的旧版本,并在必要时自行更新它。所以基本上,更新应用程序,它会处理更新数据库。这将允许您备份/恢复数据(如有必要)。
更新应用程序及其数据存储时,在升级包中提供ALTER
脚本。当应用程序第一次运行时,它应该:
ALTER
和UPDATE
脚本采取的架构和数据从V1到V2如果您使用的是核心数据,那么添加新的数据模型(模式)版本并自动进行“迁移”应该相对容易。通过一些小的更改,您可能需要创建映射模型。如果你的模式正在被重构的实体显着改变,抽象的级别被添加等等,那么你可能需要子类化NSEntityMigrationPolicy。
你可能想看看Core Data Model Versioning and Data Migration Programming Guide
你也可以看看马库斯Zarra的“核心数据”的书和示例代码。
这是我的想法。 – BobbyShaftoe 2010-10-25 15:33:49