【问题标题】:How to compare Realm schemas from Android and iOS realm file如何比较 Android 和 iOS 领域文件中的领域模式
【发布时间】:2016-01-27 23:27:31
【问题描述】:

我已经在 Android 和 iOS 上的领域中实现了数据库。我很难确定它们是否相同,但如果我从 iOS 替换文件并使用此文件获取 Realm 实例,我会得到 RealmMigrationNeededException。有没有办法比较 Android 和 iOS 领域文件中的模式?如果我对另一台 Android 设备上的文件执行相同的操作,它可以工作。

编辑:

添加空迁移后:

public class Migration implements RealmMigration {

    @Override
    public long execute(Realm realm, long version) {
        return version;
    }
}

我得到:“没有为现有领域文件中的字段 'id' 定义主键。添加 @PrimaryKey。”两个平台都将“id”字段实现为主键。

【问题讨论】:

    标签: android ios database-migration realm


    【解决方案1】:

    不幸的是,目前还没有可以输出整个架构的工具。您可以使用我们的 IOS 领域浏览器,它会向您显示其中的一些内容,但如果我没记错的话,它不会显示例如哪些字段被索引:https://itunes.apple.com/us/app/realm-browser/id1007457278?mt=12

    迁移异常应该让您知道出了什么问题?

    【讨论】:

    • 在异常消息中我得到:必须提供 RealmMigration。我使用“保存模型定义”并将两者(iOS 和 Android)都导出到 Java,然后我使用 FileMerger 进行比较,我得到 0 个差异。
    • 最好将这两个文件连同模型文件一起发送到 help@realm.io,然后我们可以查看它们以找出问题所在。
    • 我已将空迁移添加到配置中,我收到消息:“未为现有领域文件中的字段 'id' 定义主键。添加 @PrimaryKey。”我们在两个平台上都为“id”字段添加了主键。
    • 你在这两个平台上使用什么版本的 Realm?
    • 我们在主键定义中发现了一个严重错误:github.com/realm/realm-java/issues/1703,并且正在努力修复它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    相关资源
    最近更新 更多