Нужно ли предоставлять миграцию областей при добавлении только новых полей? - PullRequest
0 голосов
/ 27 августа 2018

Теоретически простое добавление новых полей может работать без миграции, эти поля будут иметь нулевое значение для всех существующих объектов. Realm работает так или мне нужно специально перенести мою базу данных?

Ответы [ 2 ]

0 голосов
/ 27 августа 2018

Теоретически простое добавление новых полей может работать без миграции,

Технически, даже в любой базе данных SQLite, вы сами пишете операторы alter table add column.

Целью, конечно, не является SQLite, поэтому он может быть другим.

Realm работает так или мне нужно специально перенести мою базу данных?

Хитрый вопрос:

  • если вы используете RealmConfiguration, вам нужно добавить поля в схему вручную в процессе миграции

  • если вы используете SyncConfiguration, то аддитивные изменения применяются автоматически, и поля будут нулевыми, НО деструктивные изменения (удаление полей, изменение индекса, изменение требуемого, изменение первичного ключа) запрещены.

0 голосов
/ 27 августа 2018

Да, вам нужно делать это каждый раз, когда вы добавляете новое поле.В противном случае вы получите исключение: «RealmMigrationNeededException: число полей больше ожидаемого - ожидаемое X, но было Y»

...