Android SQLite:使用新数据库替换旧数据库或使用迁移脚本

reg*_*aes 7 database sqlite android

我有一个Android应用程序,它使用SQLite数据库和Active Android作为ORM.在每次应用更新时,我需要使用新的/更新的数据发送我的数据库.这就是我一直在做的事情

  1. 我有一个my_app.db数据库
  2. 我对my_app.db的行,表等进行了修改
  3. 我将修改后的my_app.db保存为my_app_v2.db(依此类推)
  4. 我更换my_app.db与资产的文件夹的文件my_app_v2.db并将其设置为默认的数据库
  5. 我使用新创建的my_app_v2.db编译并运行程序

因此,当用户获取应用程序时,它将使用带有新内容的my_app_v2.db.

我知道Active Android 支持迁移脚本,但在每次数据库更新时,我需要添加/更新大约2000多条记录.因此,对于每个数据库更新,我需要一个包含2000多个插入/更新语句的迁移脚本,这意味着对于3个以上的连续升级,应用程序必须执行大约6000多个语句.

我想知道我用新的数据库替换整个数据库的方法是不好的做法,应该首选迁移脚本.

Ami*_*ati 5

你不需要这样做(重命名的东西或任何东西)

您只需更改数据库版本并编写sql命令以更改上一个表以从A版迁移到B.

看看这个链接:

Android:升级数据库版本并添加新表