更新iPhone的SQLite数据库

3
考虑到一个iPhone应用程序中的SQLite数据库,其中包含一些“文档”模板。用户还可以添加自己的模板。
我想更新程序和数据库。有没有可能在不覆盖用户数据的情况下完成更新?
我考虑过使用两个不同的数据库,但由于这会增加开销,我想避免这个选项。
如何在不覆盖用户数据的情况下完成这个操作?
3个回答

1

如果你正在使用Core Data,那么添加一个新的数据模型(架构)版本并自动进行“迁移”应该相对容易。只需进行一些小的更改,可能需要创建映射模型。如果你的架构发生了重大变化,如实体被重构、添加了抽象级别等,则可能需要子类化NSEntityMigrationPolicy。

你可能想看一下Core Data Model Versioning and Data Migration Programming Guide

你还可以看一下Marcus Zarra的《Core Data》书和示例代码。


0
你可以让你的应用程序在运行时检查旧版本的数据库,并在必要时自行更新。因此,基本上只需更新应用程序,它就会处理更新数据库。这将允许您备份/恢复数据(如果需要)。

0
在更新应用程序及其数据存储时,请在升级包中提供ALTER脚本。当应用程序首次运行时,它应该:
  • 检查数据库是否需要更新(版本号等)
  • 运行ALTERUPDATE脚本,将模式和数据从v1升级到v2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接