RealmMigrationNeededException при добавлении RealmList <Int> (Kotlin)

Я хочу добавить примитивный список в существующую модель, но получаю исключение.
Внимание: все это сделано Котлином .

Вот модель:

open class Foo( @PrimaryKey var id: Int = 0 ) : RealmObject() 

Теперь я хочу добавить следующее поле:

 var idList: RealmList<Int> = RealmList() 

Это может быть пустой список, поэтому я инициализирую его с помощью пустого RealmList (который использовался для не-примитивных полей-полей).

Моя миграция выглядит так:

 schema.get("Foo") ?.addRealmListField("idList", Int::class.java) 

При запуске приложения я получаю RealmMigrationNeededException :

Миграция требуется из-за следующих ошибок:
– Свойство «Foo.idList» сделано необязательным.


Я могу обойти это, добавив @Required в новое поле в модели, но я не уверен, что список все равно может быть пустым / нулевым.

Каков правильный способ добавления примитивного списка в модель и для чего нужна правильная миграция?

    Фактически, ваша миграция верна. Если вы не хотите, чтобы список мог содержать null в качестве значения (учитывая, что это RealmList<Integer> , где Integer может быть нулевым), вы должны добавить @Required аннотацию.

    Intereting Posts
    Упрощение кода, который является одинаковым удовольствием, за исключением подписи (varargs vs map) Bluetooth-клиент Socket получает одинаковое исключение каждый раз Android View получает оригинал «Wrap Content» Размер моего представления Kotlin DialogFragment editText редактируемый всегда null Как группировать предметы Arraylist времени в HashMap в Котлине? Android Studio / Kotlin – неверная ошибка «Метод переопределения должен вызвать супер» Пользовательский десериализатор Kotlin Gson для списка java.lang.Integer нельзя передать в java.lang.Long в Kotlin (когда начальное значение равно null) Моши в Android Kotlin – ENUM, поскольку ключ MutableMap преобразуется в String при его Kotlin: Почему большинство переменных подчеркнуты в Android Studio и как отключить это? Dagger 2 обменивается экземпляром объекта между ведущими Автоматическое обновление версии библиотеки для проектов Gradle в настоящее время не поддерживается. Обновите файл build.gradle вручную. Весенняя аннотация не работает в Котлине LiveData.addSource onChanged событие, не вызывающее Android Как перевести Array <T?> В список <T>?