Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 有人能给我解释一下Sqlite版本吗_Android_Sqlite_Android Room - Fatal编程技术网

Android 有人能给我解释一下Sqlite版本吗

Android 有人能给我解释一下Sqlite版本吗,android,sqlite,android-room,Android,Sqlite,Android Room,我有这个密码 @Database(entities = { Report.class }, version = 1) 从我所读到的或能够收集到的信息来看,每次用户更新或删除自己输入的数据时,您都需要更改版本,但后来我读到,如果你作为开发人员向数据库添加一个新列,你需要更新版本,然后检查用户拥有哪个版本,并进行切换,将用户数据库从旧版本更新到新版本,在某些情况下,他们保存旧版本和新版本,但为什么我在这里有点困惑 因此,我的问题是何时、如何以及在何处使用此版本代码。当数据库架构更改时,您会更改版本

我有这个密码

@Database(entities = { Report.class }, version = 1)
从我所读到的或能够收集到的信息来看,每次用户更新或删除自己输入的数据时,您都需要更改版本,但后来我读到,如果你作为开发人员向数据库添加一个新列,你需要更新版本,然后检查用户拥有哪个版本,并进行切换,将用户数据库从旧版本更新到新版本,在某些情况下,他们保存旧版本和新版本,但为什么我在这里有点困惑


因此,我的问题是何时、如何以及在何处使用此版本代码。

当数据库架构更改时,您会更改版本代码。当用户更改其数据时,您不会更改版本号。模式是数据库的结构。即表格定义

假设您将应用程序的一个版本发布到应用商店,并且您的用户数据库表类似于以下内容(为简洁起见,省略了注释):

然后再回到开发阶段,为你的应用程序创建一个新功能,让你可以存储用户最喜欢的颜色,也许还需要存储他们是否使用加拿大/英国拼写的单词

现在该表如下所示:

@Entity
class User {
   val username: String
   val likesStarWars: Boolean
   val britishEnglish: Boolean
   val favouriteColour: String
}
此时,在将新版本发布到存储之前,必须将数据库版本从1增加到2。这会向以前安装过应用程序的任何用户设备发出必须升级数据库的信号

为了支持这些旧版本的数据库,您必须提供从数据库版本1迁移到版本2的代码

您不必担心检查用户拥有的数据库版本,如果您通过迁移正确地实现了房间数据库,房间数据库库将涵盖您。库将为您检查和更新数据库

最后,这个版本代码是一个非常重要的数字,您应该花时间来理解它的复杂性。在首次发布应用程序期间,在您到达应用商店之前,您的数据库将仅为版本1。之后,当您发布第一次更新,并有数据库结构更改时,则必须考虑版本号。

@Entity
class User {
   val username: String
   val likesStarWars: Boolean
   val britishEnglish: Boolean
   val favouriteColour: String
}