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