为什么以及何时需要在Android中更新SQLite数据库版本?

时间:2014-04-19 02:06:19

标签: android sqlite

我正在创建一个使用从db = SQLiteDatabase.openOrCreateDatabase(...)派生的数据库的简单应用程序。现在,当我创建它时,我使用db.setVersion(1);

我在某处读到每次更改时都必须更改数据库版本。现在我找不到我读到的特定教程,所以我留下了一些问题。

1)数据库版本化的原因是什么?什么是实际目的?

2)何时应该更新版本?每次插入后?是否每增加一张表?

3)如果我不在1之后更新版本,我会遇到麻烦吗?它会导致什么?

2 个答案:

答案 0 :(得分:0)

1)对数据库进行版本控制实际上是对模式进行版本控制。这使您可以知道架构何时更改,以便您可以转换它。

2)每当您更改架构时。

3)如果您更改架构,您将无法知道正在使用哪个架构,并最终会遇到异常。如果您从未更改架构,则不会发生任何事情。

你不应该手动调用setVersion。它已经知道现有版本的版本,如果是新数据库,则将其传递到其他地方。

答案 1 :(得分:0)

如果您使用 SQLiteOpenHelper 管理数据库创建和版本更新,则只需要 Android中的SQLite数据库版

SQLiteOpenHelper负责

  • 打开数据库(如果存在),
  • 创建它,如果它不存在,
  • 必要时升级其架构
  • 设置SQLite数据库版本。

databaseverionnumber在SQLiteDatabase构造函数中设置。

您的示例SQLiteDatabase.openOrCreateDatabase(...)不使用SQLiteOpenHelper所以在这种情况下不需要设置dbversion。