更改Realm模型时出现RealmMigrationNeededException

Ral*_*ius 7 android realm

每当我像添加更多字段一样更改模型时,应用程序会因io.realm.exceptions.RealmMigrationNeededException错误而崩溃.这只能在我卸载并重新安装应用程序时解决.

有什么建议去做迁移吗?我只使用默认实例.

AZ_*_*AZ_ 16

如果丢失旧数据没有任何问题,则可以删除Realm Configuration并创建新的.

Realm realm = null;

                    try {
                       realm = Realm.getInstance(MainActivity.this);
                    } catch (RealmMigrationNeededException r) {
                        Realm.deleteRealmFile(MainActivity.this);
                        realm = Realm.getInstance(MainActivity.this);
                    }
Run Code Online (Sandbox Code Playgroud)

要么

RealmConfiguration config2 = new RealmConfiguration.Builder(this)
                .name("default2") 
                .schemaVersion(3) 
                .deleteRealmIfMigrationNeeded() 
                .build(); 


        realm = Realm.getInstance(config2);
Run Code Online (Sandbox Code Playgroud)

Migration如果你不想丢失数据,你必须这样做,请在这里看到这个例子.


Bro*_*oak 11

您应该能够在这里找到所需的信息:

https://realm.io/docs/java/latest/#migrations

如果在旧数据库模式下没有数据存储在磁盘上,只需将代码更改为新定义即可正常工作.但是,如果你这样做,那么Realm认为在代码中定义的内容与Realm在磁盘上看到的数据之间将存在不匹配,因此会抛出异常.