我在當前的應用程序中使用領域,我想更新我的應用程序。現在,如果您在應用程序中使用數據庫來保存一些值,則此過程需要migrating of tables
以及新的實體和模式。領域 - 列類型不是vaid
我的問題在於,我在遷移時遇到了一些問題,因爲這些Realm遷移文檔並不好,而且我收到了包括error : Column type not valid
在內的幾個錯誤。
這是我對遷移的方法:
首先,這是該領域配置的樣子:
public class RealmHelper implements RealmMigration {
public static final long SCHEMA_VERSION = 2; // This was the 2nd schema.
public static final String REALM_NAME = "john.example";
public static RealmConfiguration getRealmConfig(Context context) {
return new RealmConfiguration.Builder(context)
.name(REALM_NAME)
.schemaVersion(SCHEMA_VERSION)
.migration(new Migration())
.build();
}
}
第二,這是移民類:這就是問題是。
public class Migration implements RealmMigration {
@Override
public long execute(Realm realm, long version) {
if(version == 2){
// Issue is here. Notice the "otherModel". That is an entity in the SampleClass table.
Table sampleTable = realm.getTable(SampleClass.class);
sampleTable.addColumn(ColumnType.TABLE, "otherModel", true);
}
}
}
最後,在SampleClass,這是實際的數據模型的包裝。
public class SampleClass extends RealmObject {
@SerializedName("somename")
private OtherModel otherModel;
public OtherModel getOtherModel() {
return otherModel;
}
public void setOtherModel(OtherModel otherModel) {
this.otherModel = otherModel;
}
}
基於目前的情況,我在這裏得到一個錯誤,它說的是,ColumnType無效。
Table sampleTable = realm.getTable(SampleClass.class);
sampleTable.addColumn(ColumnType.TABLE, "otherModel", true);
我不確定究竟是什麼樣的列類型,如果它只是包裝模型中的對象。
如果你想添加到另一個RealmObject參考,我會很感激任何形式的幫助這裏..在此先感謝:)
明白了..謝謝你的解釋..真的很有幫助。是的,ColumnType.LINK是我無法在文檔中找到的東西。謝謝.. :) – mike20132013