请有人解释一下,在Sqlflite软件包的openDatabase函数中,“版本”参数的意义是什么?
我已经看过文档(链接),但无法理解它。
发布于 2022-06-12 14:07:10
假设您创建了一个包含name和age列的数据库,并发布了应用程序。现在要将列age添加到表中,如果将它添加到create table查询中,它将产生一个错误,因为表已经存在,如果使用create table if not exist查询,它将不会创建新列,因为表也已经存在。
那么,前面的用户将如何获得新的age列?
这就是版本开始发挥作用的地方。
增加版本并在onUpdate函数中添加一个查询以更改表并添加age列,
if (DatabaseClient.dbOldVersion < 2) {
await db.execute("ALTER TABLE $tableName ADD COLUMN Age INTEGER DEFAULT 0");
}这样,当您将更新发布到应用程序并由前一个用户更新时,当他们在更新后第一次打开应用程序时,onUpdate就会被调用,因为他们的数据库版本与您在此更新中指定的版本不同。
注意,您也需要更新create查询,以防新用户在新版本之后下载该应用程序。
https://stackoverflow.com/questions/72592134
复制相似问题