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