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

Do i have to provide a Realm Migration when only adding new Fields?

理论上,无需迁移即可简单地添加新字段,这些字段在所有现有对象上都将为空。 Realm 是这样工作的还是我需要专门迁移我的数据库?

是的,每次添加新字段时都需要这样做。否则,你会得到一个例外 - "RealmMigrationNeededException: Field count is more than expected - expected X but was Y"

In theory simply adding new fields could work without migrating,

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

Realm当然不是SQLite,所以可以不一样。

Does Realm work like this or do i need to specifically migrate my database?

棘手的问题:

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

  • 如果您正在使用 SyncConfiguration,则会自动应用附加更改并且字段将为空,但不允许进行破坏性更改(删除字段、更改索引、更改必需项、更改主键)。