У меня есть приложение, которое уже использовало базу данных области. Теперь я хочу добавить в схему новый RealmObject (скажем, я хочу добавить Person
в качестве моего нового класса RealmObject). Из документации видно, что мне нужно сделать следующее, чтобы это сработало:
RealmConfiguration config = new RealmConfiguration.Builder()
.schemaVersion(1) // Must be bumped when the schema changes
.migration(new MyMigration()) // Migration to run instead of throwing an exception
.build()
// Example migration adding a new class
class MyMigration extends RealmMigration {
@Override
public void migrate(DynamicRealm realm, long oldVersion, long newVersion) {
// DynamicRealm exposes an editable schema
RealmSchema schema = realm.getSchema();
// Migrate to version 1: Add a new class.
// Example:
// public Person extends RealmObject {
// private String name;
// private int age;
// // getters and setters left out for brevity
// }
if (oldVersion == 0) {
schema.create("Person")
.addField("name", String.class)
.addField("age", int.class);
oldVersion++;
}
etc....
Мой вопрос здесь: нам действительно нужно создать схему Person
«вручную» (т.е. добавить поля с их типом) здесь? Или есть способ использовать Person
RealmObject, поскольку мы уже определили, какие поля должны принадлежать новому классу?