Ошибка несоответствия схемы 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
,