更改Realm模型时出现RealmMigrationNeededException

时间:2015-06-08 17:05:33

标签: android realm

每当我像添加更多字段一样更改模型时,应用程序会因io.realm.exceptions.RealmMigrationNeededException错误而崩溃。只有在我卸载并重新安装应用程序时才能解决此问题。

有关迁移的任何建议吗?我只使用默认实例。

2 个答案:

答案 0 :(得分:10)

您应该可以在这里找到所需的信息:

https://realm.io/docs/java/latest/#migrations

  

如果您将代码更改为新定义,则可以正常工作   没有数据存储在旧数据库模式下的磁盘上。但如果你   实际上,Realm认为在代码和定义中定义的不匹配。   Realm在磁盘上看到的数据,因此会抛出异常。

答案 1 :(得分:2)

0.84.2中的领域迁移发生了很大的变化,让我(0.84.2)迁移工作的关键点是理解:

  • 当您的应用具有不带的域数据库时,schemaVersion始终为0 指定schemaVersion。大多数情况下都是如此 一旦你开始在配置中开始使用schemaVersion 需要迁移&已经在运行您应用的实时版本。

  • schemaVersion会自动存储,当你的应用程序全新安装时,你已经在schemaVersion 3,realm 自动检查是否有异常,如果没有则设置 schemaVersion为3,因此您的迁移在不需要时不会运行。 这也意味着你不再需要存储任何东西了 SharedPreferences。

  • 在迁移中,当类型不可为空时,您必须设置新列的所有值,...

  • 只能在列上设置convertColumnToNullable时插入空字符串