Ошибка несоответствия схемы Android Realm

Как вы, ребята, сопоставляете объекты Java-сферы с объектами Swift Realm?

Моя область разработки началась с Swift, поэтому объектный сервер содержит данные, перенесенные из swift. Затем я создал свою версию для Android с использованием Java (с моделями из Realm Studio).

Swift:
class OrderItem: Object {
    @objc dynamic var id: String = ""
}

Java
public class OrderItem extends RealmObject {
//    @PrimaryKey
    private String id;
}

Error without @PrimaryKey:
Bad changeset received: Schema mismatch: 'OrderItem' has a primary key on one side, but not on the other.

Error with @PrimaryKey: 
Exception has been thrown: The following changes cannot be made in additive-only schema mode: Primary Key for class 'OrderItem' has been added.

Есть идеи, как исправить эти ошибки?

1 ответ

Ошибка без @PrimaryKey: получен неверный набор изменений: Несоответствие схемы: у OrderItem первичный ключ с одной стороны, но не с другой.

Это указывает на то, что несоответствие схемы приведет к разрушительной операции со схемой, так что это неправильно.

Ошибка с @PrimaryKey: Возникло исключение: Следующие изменения не могут быть сделаны в режиме схемы только с аддитивом: Добавлен первичный ключ для класса 'OrderItem'.

Это означает, что вы, вероятно, пытались без @PrimaryKey заранее, так что у вас локально все еще есть схема, которая не имеет первичного ключа, поэтому вам нужно стереть данные приложения, чтобы удалить файл Realm, а затем повторить попытку с @PrimaryKey,

Другие вопросы по тегам