0
私は領域の移行の問題に直面しています。私は新しいモデルクラスを領域データベースに追加したいと思います。これを解決する方法を教えてください。io.realm.exceptions.RealmMigrationNeededException:このRealmのスキーマに 'ImportantCalls'クラスがありませんか?
public class Migration implements RealmMigration {
@Override
public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
RealmSchema schema = realm.getSchema();
if (oldVersion==0){
oldVersion ++;
}
if (oldVersion == 1) {
schema.create("ImportantCalls")
.addField("id", int.class)
.addField("number", String.class)
.addField("callType", String.class)
.addField("startTime", String.class)
.addField("callRecords", String.class)
.addField("callStatus", String.class)
.addField("actualStartTime", Long.class);
oldVersion++;
}
}
@Override
public int hashCode() {
return 37;
}
@Override
public boolean equals(Object o) {
return (o instanceof Migration);
}
}
上記のコードは、レルムを移行するためのコードです。
以下のコードは、例外iはレルム `によってレルムデータベース内のデータを削除した移行を行う前realm.getDefaultInstance(); in this line.
に発生しているアンドロイド
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dash_board);
Realm.init(this);
// RealmConfiguration config = new RealmConfiguration.Builder()
// .deleteRealmIfMigrationNeeded()
// .build();
RealmConfiguration config = new RealmConfiguration.Builder()
.schemaVersion(5) // Must be bumped when the schema changes
.migration(new Migration()) // Migration to run
.build();
Realm.setDefaultConfiguration(config);
// Realm.deleteRealm(config);
realm.getDefaultInstance();
でのOnCreate()メソッドでiitializing私のレルムです。 deleteRealm(config);
実際には、データを移行しようとしたので、実際にはうまくいきません。これを解決する方法を教えてください。
移行ではv5が使用されていますが、コードではクラスをv1に追加します。 2-5で何が起こっていますか? –
@ Christian Melchior私のコードで変更したいもの –
@PrabhaKaranバージョン2から5の移行手順が必要ですか? – geisshirt