Android 架构更改时的ORMLite数据备份和恢复
我在android应用程序中使用ORMLite作为数据持久性选项。我希望确保在重新安装时进行数据备份和恢复。如果我在应用程序逻辑中做了一些更改并重新安装了应用程序,那么数据将保持不变,但是我如何处理架构更改,如果新版本的应用程序有一些数据库架构更改,我如何处理将用户数据导入新架构的操作。请引导我找到可能的解决方案 问候 但是我该如何处理模式更改呢?我想新版本的应用程序有一些数据库模式更改。我该如何处理将用户数据导入到新模式中的操作 如果我理解这个问题,那不是关于导入,而是关于安装新版本操作系统时的模式更新。ORMLite实际上有一节是关于这一点的: 引用一下,您需要重写Android 架构更改时的ORMLite数据备份和恢复,android,sqlite,ormlite,sqliteopenhelper,Android,Sqlite,Ormlite,Sqliteopenhelper,我在android应用程序中使用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
的值如何在内部维护,或者我必须手动管理它们?