仅添加新字段时是否需要提供领域迁移?

时间:2018-08-27 09:47:13

标签: android realm realm-migration

理论上,简单地添加新字段就可以不进行迁移而工作,这些字段在所有现有对象上都为null。 Realm是这样工作的还是我需要专门迁移数据库?

2 个答案:

答案 0 :(得分:1)

是的,每次添加新字段时都需要执行此操作。否则,您将得到一个例外-“ RealmMigrationNeededException:字段计数超出预期-预期为X但为Y”

答案 1 :(得分:1)

  

从理论上讲,只需添加新字段即可进行迁移,

从技术上讲,即使在任何SQLite数据库中,您也都可以自己编写alter table add column语句。

领域当然不是SQLite,所以可以有所不同。

  

Realm是这样工作的还是我需要专门迁移数据库?

棘手的问题:

  • 如果使用的是RealmConfiguration,则需要在迁移中手动将字段添加到架构中

  • 如果使用的是SyncConfiguration,则将自动应用附加更改,并且这些字段将为空,但不允许进行破坏性更改(删除字段,更改索引,需要更改,更改主键)。