0
我有一个关于在王国迁移问题。在一个捕获数据库版本0的应用程序中,更新完成后,所有事情都很好,但是,当应用程序完全安装完成时,它会在重新打开时出现问题,因为它会尝试执行迁移到1.什么是将是继续处理这些案件的正确方法?我如何设置版本?迁移和境界数据库版本
我有一个关于在王国迁移问题。在一个捕获数据库版本0的应用程序中,更新完成后,所有事情都很好,但是,当应用程序完全安装完成时,它会在重新打开时出现问题,因为它会尝试执行迁移到1.什么是将是继续处理这些案件的正确方法?我如何设置版本?迁移和境界数据库版本
在您需要之前验证oldVersion
迁移类,然后开始迁移,只有当它真的有必要。
// Example migration adding a new class
RealmMigration migration = new RealmMigration() {
@Override
public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
// DynamicRealm exposes an editable schema
RealmSchema schema = realm.getSchema();
// Migrate to version 1
if (oldVersion == 0) {
schema.create("Person")
.addField("name", String.class)
.addField("age", int.class);
oldVersion++;
}
// Migrate to version 2: Add a primary key + object references
// Example:
if (oldVersion == 1) {
schema.get("Person")
.addField("id", long.class, FieldAttribute.PRIMARY_KEY)
.addRealmObjectField("favoriteDog", schema.get("Dog"))
.addRealmListField("dogs", schema.get("Dog"));
oldVersion++;
}
}
}
是否干净安装意味着所有的文件将被删除?由于版本存储在Realm中,这就像从头开始。 – geisshirt
准确地说,在新设备上进行安装。问题是要通过迁移架构版本1.在将旧应用程序更新为新的应用程序时,它的工作原理正常,但是如果安装是在新设备中完成的,则需要再次打开应用程序并再次打开应用程序试图再次实现移民。 –
当应用程序获得第一个实例时,将创建Realm文件。模式版本未定义,因此使用模型类,模式版本设置为您在“RealmConfiguration”中指定的值(在您的案例中为1)。下次该应用程序启动时,磁盘上和配置中的版本相同,且不执行迁移。您是否在您的配置中设置了模式版本? – geisshirt