【问题标题】:update sqlite database for iphone更新 iphone 的 sqlite 数据库
【发布时间】:2010-10-26 00:57:52
【问题描述】:

考虑一个带有一些“文档”作为模板的 iPhone 应用程序的 SQLite 数据库。用户也可以添加自己的模板。

我想更新程序和数据库。有没有机会在不覆盖用户数据的情况下这样做?

我考虑过两个不同的数据库,但由于这是开销,我想避免这个选项。

如何在不覆盖用户数据的情况下做到这一点?

【问题讨论】:

    标签: iphone database sqlite


    【解决方案1】:

    如果您使用的是 Core Data,那么添加新的数据模型(模式)版本并自动进行“迁移”应该相对容易。通过一些小的更改,您可能需要创建一个映射模型。如果您的架构随着实体的重构、抽象级别的添加等发生显着变化,那么您可能需要继承 NSEntityMigrationPolicy。

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

    您还可以查看 Marcus Zarra 的“核心数据”一书和示例代码。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        更新您的应用程序及其数据存储时,请在升级包中提供ALTER 脚本。当应用首次运行时,它应该:

        • 检查数据库是否需要更新(版本号等)
        • 运行 ALTERUPDATE 脚本将架构和数据从 v1 转移到 v2

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-05-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-10-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多