Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.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 架构更改时的ORMLite数据备份和恢复_Android_Sqlite_Ormlite_Sqliteopenhelper - Fatal编程技术网

Android 架构更改时的ORMLite数据备份和恢复

Android 架构更改时的ORMLite数据备份和恢复,android,sqlite,ormlite,sqliteopenhelper,Android,Sqlite,Ormlite,Sqliteopenhelper,我在android应用程序中使用ORMLite作为数据持久性选项。我希望确保在重新安装时进行数据备份和恢复。如果我在应用程序逻辑中做了一些更改并重新安装了应用程序,那么数据将保持不变,但是我如何处理架构更改,如果新版本的应用程序有一些数据库架构更改,我如何处理将用户数据导入新架构的操作。请引导我找到可能的解决方案 问候 但是我该如何处理模式更改呢?我想新版本的应用程序有一些数据库模式更改。我该如何处理将用户数据导入到新模式中的操作 如果我理解这个问题,那不是关于导入,而是关于安装新版本操作系统时

我在android应用程序中使用ORMLite作为数据持久性选项。我希望确保在重新安装时进行数据备份和恢复。如果我在应用程序逻辑中做了一些更改并重新安装了应用程序,那么数据将保持不变,但是我如何处理架构更改,如果新版本的应用程序有一些数据库架构更改,我如何处理将用户数据导入新架构的操作。请引导我找到可能的解决方案

问候

但是我该如何处理模式更改呢?我想新版本的应用程序有一些数据库模式更改。我该如何处理将用户数据导入到新模式中的操作

如果我理解这个问题,那不是关于导入,而是关于安装新版本操作系统时的模式更新。ORMLite实际上有一节是关于这一点的:

引用一下,您需要重写
onUpgrade(…)
方法并执行以下操作:

abstract void onUpgrade(SQLiteDatabase database,
      ConnectionSource connectionSource, int oldVersion, int newVersion) {
    if (oldVersion < 2) {
      // we added the age column in version 2
      dao.executeRaw("ALTER TABLE `account` ADD COLUMN age INTEGER;");
    }
    if (oldVersion < 3) {
      // we added the weight column in version 3
      dao.executeRaw("ALTER TABLE `account` ADD COLUMN weight INTEGER;");
    }
}
abstract void onUpgrade(SQLiteDatabase数据库,
连接源连接源,int旧版本,int新版本){
如果(旧版本<2){
//我们在版本2中添加了年龄列
executeRaw(“ALTER TABLE`account`ADD COLUMN age INTEGER;”);
}
如果(旧版本<3){
//我们在版本3中添加了权重列
executeRaw(“ALTER TABLE`account`ADD COLUMN weight INTEGER;”);
}
}

如果我没有收到你的问题,那么请编辑你的帖子,我会添加更多信息。

tnx@Gray我有点希望你能回答这个问题,我想检测自动模式更改,但后来我知道,每次模式更改我都必须手动处理。。。tnx为您提供帮助只有一件事,
oldVersion
newVersion
的值如何在内部维护,或者我必须手动管理它们?