我试图找出处理数据库升级和版本控制的最佳方法。
目前,当我进行点发布时,我会删除数据库并注销用户,这不是一个很好的体验。
任何人都可以推荐任何这样做的技巧吗?
我试图找出处理数据库升级和版本控制的最佳方法。
目前,当我进行点发布时,我会删除数据库并注销用户,这不是一个很好的体验。
任何人都可以推荐任何这样做的技巧吗?
您的数据库版本独立于您的应用程序版本。如果您的数据库架构根本没有改变,那么在更新期间您不需要对数据库执行任何操作。
当您的数据库架构更改时,您应该onUpgrade()
在SQLiteOpenHelper
. 如数据存储选项文档中所述,当您尝试访问数据库并且更新了数据库版本时,将调用此方法。
如果您使用第三方库来处理您的数据库,它应该为您处理升级或提供类似的功能。
这里没有升级数据库的通用策略。您所做的完全取决于您的架构在升级之前的样子以及新架构的样子。根据更改的内容,您可能会创建新表或列、删除表或列、更新数据库中的行或在表之间移动数据。如果您有关于如何迁移数据的特定问题,请创建一个描述新旧模式的新问题。
我们这样做的方式是,每次应用程序启动时,我们都会运行一个例程,该例程调用服务器上的存储过程来获取 SQL,以便在必要时升级数据库。(sql 可能非常复杂:删除表并使用新结构重新创建它们并插入新值)。我们将数据库的版本存储在数据库本身并升级到新版本。
我们不使用 onUpgrade() 调用。