【发布时间】:2018-08-27 09:47:12
【问题描述】:
理论上,只需添加新字段就可以在不迁移的情况下工作,这些字段在所有现有对象上都是空的。 Realm 是这样工作的还是我需要专门迁移我的数据库?
【问题讨论】:
标签: android realm realm-migration
理论上,只需添加新字段就可以在不迁移的情况下工作,这些字段在所有现有对象上都是空的。 Realm 是这样工作的还是我需要专门迁移我的数据库?
【问题讨论】:
标签: android realm realm-migration
理论上,只需添加新字段即可,无需迁移,
从技术上讲,即使在任何 SQLite 数据库中,您都可以自己编写 alter table add column 语句。
Realm 当然不是 SQLite,所以它可以不同。
Realm 是这样工作的还是我需要专门迁移我的数据库?
棘手的问题:
如果您使用 RealmConfiguration,则需要在迁移中手动将字段添加到架构中
如果您使用的是 SyncConfiguration,则会自动应用附加更改并且字段将为空,但不允许破坏性更改(删除字段、更改索引、更改所需、更改主键)。
【讨论】:
是的,您每次添加新字段时都需要这样做。否则,您将收到一个异常-“RealmMigrationNeededException: Field count is more than expected - expected X but was Y”
【讨论】: