Android 安卓领域迁移版本号基于什么?
我正在进行我的第一次领域迁移,并开始考虑版本号。此版本号基于什么Android 安卓领域迁移版本号基于什么?,android,realm,realm-migration,Android,Realm,Realm Migration,我正在进行我的第一次领域迁移,并开始考虑版本号。此版本号基于什么 因为如果它是基于你手机上的内容,如果一个新用户安装了应用程序并获得了迁移,我该如何处理它?因为它还将更新由于新安装而设置的字段。Christian from Realm here。迁移API仍然处于非常实验性的状态,有点难看,所以现在版本号总是以0开头,唯一的改变方法是通过迁移 这意味着,如果您希望使用0以外的其他版本进行新安装,则必须执行以下操作: // Pseudo code public class Realm
因为如果它是基于你手机上的内容,如果一个新用户安装了应用程序并获得了迁移,我该如何处理它?因为它还将更新由于新安装而设置的字段。Christian from Realm here。迁移API仍然处于非常实验性的状态,有点难看,所以现在版本号总是以0开头,唯一的改变方法是通过迁移 这意味着,如果您希望使用0以外的其他版本进行新安装,则必须执行以下操作:
// Pseudo code
public class RealmHelper() {
private static SharedPreferences prefs;
public static Realm getInstance() {
if (!prefs.getBoolean("versionSet", false)) {
String path = new File(context.getFilesDir(), Realm.DEFAULT_REALM_NAME).getAbsolutePath();
Realm.migrateRealmAtPath(path, new RealmMigration() {
@Override
public long execute(Realm realm, long version) {
return 42; // Set version numbers
}
})
prefs.edit().putBoolean("versionSet", true).apply();
}
return Realm.getInstance();
}
}
不过,这很快就会好得多:0.84.2中的领域迁移发生了很大的变化(请参阅Christian关于新API的提示),让领域(0.84.2)迁移为我工作的关键点是:
- 当你的应用程序有一个没有的领域db时,SchemaReversion总是0 指定schemaversation。这在大多数情况下都是正确的,因为你 一旦您完成配置,就可能开始在配置中使用schemaVersion 需要迁移&正在运行应用程序的实时版本
- schemaVersion会自动存储,当您的应用程序重新安装时,您已经在schemaVersion 3,realm上 自动检查是否存在异常,如果没有,则设置 schemaVersion设置为3,以便在不需要时不运行迁移。 这也意味着你不必再在里面储存任何东西了 共享引用
- 在迁移中,当类型不可为null时,必须设置新列的所有值,当前版本的realm
- 只能在列上设置convertColumnToNullable时插入空字符串