【问题标题】:Realm migration - adding new class to the existing Realm module领域迁移 - 向现有领域模块添加新类
【发布时间】:2019-08-30 07:16:22
【问题描述】:

我正在将现有的类 Headings.class 添加到 RealmModule NoteModule 这个类不属于我之前的几个领域模块中的任何一个。 如何编写 Realm 迁移代码来实现这一点?

笔记模块:

@RealmModule(classes = {PaperEntry.class, BookEntry.class, AccessInfo.class, BookInfoEntry.class, Heading.class})
public class NoteModule {
}

我在 stackoverflow 上找不到我的问题的示例。

感谢支持。

谢谢

【问题讨论】:

    标签: android realm realm-migration


    【解决方案1】:

    请查看this 链接以了解领域迁移。

    像这样更改领域配置并创建像MyMigration.java这样的新类

    Realm.init(getApplicationContext());
    RealmConfiguration realmConfiguration = new RealmConfiguration.Builder()
                        .name("database.realm").schemaVersion(1).migration(new MyMigration()).build();
    
    Realm.setDefaultConfiguration(realmConfiguration);
    

    MyMigration.java

    public class MyMigration implements RealmMigration {
        @Override
        public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
    
            RealmSchema schema = realm.getSchema();
    
            if (oldVersion == 1) {
                schema.create("Headings")
                        .addField("make", String.class)
                        .addField("model", String.class)
                        .addField("primaryKEY", String.class, FieldAttribute.PRIMARY_KEY);
                oldVersion++;
            }
    
    
    
        }
    }
    

    【讨论】:

    • 谢谢。我希望上面的代码用于添加一个新的 Realmobject,但我的问题是 - 我的 Realmobject 已经存在,我想添加我的几个 RealmModules 之一。无论如何,我尝试了您的代码,但收到错误“原因:java.lang.NullPointerException:尝试调用虚拟方法'io.realm.RealmObjectSchema io.realm.RealmObjectSchema.addField(java.lang.String, java.lang.Class, io .realm.FieldAttribute[])' 在空对象引用上”可能是我的问题不太清楚。让我编辑一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    相关资源
    最近更新 更多